sintaks kesilapan menggunakan
onerror mempunyai tiga parameter input secara lalai:
•msg: mesej ralat
•url: Fail di mana ralat terletak
•baris: Baris kod tempat ralat terletak, integer
window.onerror = function(msg, url, line){ // beberapa kod };
Untuk bentuk
window.onerror=function(){return true;}
Ciri Asas
Anda boleh menghalang penyemak imbas daripada memaparkan mesej ralat dengan menetapkan returnValue=true, atau kembali benar secara langsung. Tetapi ia tidak akan menghalang kotak penyahpepijatan daripada muncul oleh penyahpepijat skrip.
Onerror hanya akan dicetuskan oleh ralat masa jalan, bukan oleh ralat sintaks.
• Ralat masa jalan seperti rujukan objek tidak sah atau sekatan keselamatan
• Muat turun ralat seperti gambar
•Dalam IE9, kegagalan untuk mendapatkan data multimedia juga akan mencetuskan
Teg
Keserasian Pelayar
Sokongan untuk onError dalam setiap penyemak imbas yang disenaraikan oleh QuirksMode
•Chrome 13
•Firefox 6.1
•Internet Explorer 5.5
•Safari 5.1
•Opera 11.61 (QuirksMode tidak disokong oleh 11.51 apabila diuji, tetapi 11.61 yang saya ada sudah menyokongnya)
Selain objek tetingkap, elemen yang menyokong onerror:
•
Masalah dan Penyelesaian
Untuk ralat dalam merujuk fail js luaran, penyemak imbasWebkit dan Mozilla akan mengganggu maklumat ralat asal, mengakibatkan tiga parameter input terakhir yang diperolehi oleh onerror:
例如http://a.com/index.html,引入了http://b.com/g.js,如果g.js出错,最终传递到window.onerror的信息会被篡改。
浏览器之所以做这样的处理,是考虑到两个特性:
•