2013-08-01 19 views
9

Próbuję przechwycić i opublikować wszystkie błędy JS na stronie w widoku Django. Robię coś takiego.Uzyskiwanie pełnego źródła strony za pomocą Javascriptu

<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> 

Pytanie: Chciałbym dodać rzeczywistą linię, jak również. Jak uzyskać linię ze źródła strony, biorąc pod uwagę numer linii?

Do tej pory próbowałem to (co stanowi dla wszystkich rodzajów znaków nowej linii):

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

to jednak nie daje mi poprawny numer linii. Czego tu mi brakuje?

+0

Czy rejestrowałeś również dane nagłówka? – DarkBee

+0

dlaczego potrzebujesz numeru linii? –

+0

Zakładam, że będziesz analizował to na interfejsie interfejsu. Czemu nie dokonać podziału? –

Odpowiedz

1

Nie jest szczególnie skuteczny, ale powinien dostać co jesteś po (tj doctype i wszystkie):

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

użyć metody jQuery $ ('# divID_where_you_want_to_extract) .load (' url ');

Powiązane problemy