Saya memiliki skrip yang mendeteksi kesalahan Javascript di situs web saya dan mengirimkannya ke backend saya untuk pelaporan. Ini melaporkan kesalahan pertama yang ditemui, nomor baris yang seharusnya, dan waktu.
EDIT untuk memasukkan tipe dokumen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
...
<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
window.onerror = function(msg, url, ln) {
//transform errors
if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
msg = 'Error loading script';
}else{
msg = 'Event Error - target:' + msg.target + ' srcElement:' + msg.srcElement;
}
}
msg = msg.toString();
//ignore errors
if(msg.indexOf("Location.toString") > -1){
return;
}
if(msg.indexOf("Error loading script") > -1){
return;
}
//report errors
window.onerror = function(){};
(new Image()).src = "/jserror.php?msg=" + encodeURIComponent(msg) + "&url=" + encodeURIComponent(url || document.location.toString().replace(/#.*$/, "")) + "&ln=" + parseInt(ln || 0) + "&r=" + (+new Date());
};
})(window);
//]]>
</script>
Karena skrip ini, saya sangat menyadari adanya kesalahan javascript yang terjadi di situs saya. Salah satu pelanggar terbesar adalah "Script Error." on line 0. di Chrome 10+, dan Firefox 3+. Kesalahan ini tidak ada (atau mungkin disebut sesuatu yang lain?) Di Internet Explorer.
Koreksi (23/5/2013): Kesalahan "Script Error, Line 0" ini sekarang muncul di IE7 dan mungkin versi IE lainnya. Mungkin akibat dari patch keamanan IE baru-baru ini karena perilaku ini sebelumnya tidak ada.
Adakah yang tahu apa arti kesalahan ini atau apa yang menyebabkannya? Ini terjadi pada sekitar 0,25% dari keseluruhan pageload saya, dan mewakili setengah dari kesalahan yang dilaporkan.
application/xhtml+xml
untuk menjalankannya di parser XHTML (seperti spesifikasi XHTML katakan). Ada banyak konten yang mengklaim sebagai XHTML, tetapi mengirimkan dokumen HTML normal. Karena betapa salahnya pembuat konten menggunakan XHTML, browser memutuskan untuk hanya menggunakan parser XML application/xhtml+xml
(itu benar-benar parser ketat). The hixie.ch/advocacy/xhtml dan webdevout.net/articles/beware-of-xhtml mengatakan mengapa tidak menggunakan parser HTML dengan XHTML.