2013-08-01 4 views
9

J'essaie de capturer et de publier toutes les erreurs JS d'une page dans une vue Django. Je fais quelque chose comme ça.Obtenir la source complète d'une page en utilisant Javascript

<script> 
    window.onerror = function(errorMsg, file, lineNumber) { 
     post_data = {error: errorMsg, file: file, 
     location: window.location.href, lineNumber: lineNumber, 
     ua: navigator.userAgent}; 
     jQuery.post('/js_errors/', post_data); 
    } 
</script> 

La question: Je voudrais ajouter la ligne réelle aussi bien. Comment puis-je obtenir la ligne à partir de la source de la page, compte tenu du numéro de ligne?

Jusqu'à présent, j'ai essayé ce (représentant tous les types de caractères saut de ligne):

document.getElementsByTagName('html')[0].outerHTML.split(/\r?\n/)[lineNumber]; 

Cependant, cela ne me donne pas le numéro de ligne correcte. Qu'est-ce que j'oublie ici?

+0

Avez-vous également capturé des données d'en-tête? – DarkBee

+0

Pourquoi avez-vous besoin du numéro de ligne? –

+0

Je suppose que vous voulez analyser ceci sur un backend d'interface. Pourquoi ne pas faire la séparation là? –

Répondre

1

pas particulièrement efficace, mais devrait obtenir ce que vous êtes après (à savoir doctype et tout):

lineNumber = 23; 
errorLine = null; 
$.post("",function(source) { 
    errorLine = source.split(/\r?\n/)[lineNumber]; 
}); 
-4

utiliser la méthode de jquery $ ('# divID_where_you_want_to_extract) .load (' url ');

Questions connexes