window.onerrorとwindow.addEvent Listenerの違い
1695 ワード
全体的にjsを処理して運行する時異常を処理していない時、window.onerrorまで常用して、時にはwindow.addEvent Listener('error'、function(event){}を使って、この2つは一体どんな違いがありますか?
window.onerror
window.onerrorはグローバル変数で、デフォルト値はnullです.jsが実行されている時にエラーが発生した場合、windowはerrorイベントをトリガし、window.onerror()を実行します.onerrorは複数のパラメータを受け入れることができます.
jsの実行中のエラーイベントをモニターすると、Windows.onerrorより先にトリガされます.Oneerrorの機能とほぼ似ていますが、イベントのコールバック関数はすべてのエラー情報を保存するパラメータしかないので、デフォルトのイベント処理関数の実行を阻止できません.
window.onerror
window.onerrorはグローバル変数で、デフォルト値はnullです.jsが実行されている時にエラーが発生した場合、windowはerrorイベントをトリガし、window.onerror()を実行します.onerrorは複数のパラメータを受け入れることができます.
window.onerror = function(message, source, lineno, colno, error) { ... }
:
* message: ( )。 HTML onerror="" event。
* source: URL( )
* lineno: ( )
* colno: ( )
* error:Error
true, , console 。 false , console
addEvent Listener('error')jsの実行中のエラーイベントをモニターすると、Windows.onerrorより先にトリガされます.Oneerrorの機能とほぼ似ていますが、イベントのコールバック関数はすべてのエラー情報を保存するパラメータしかないので、デフォルトのイベント処理関数の実行を阻止できません.
window.addEventListener('error', function(event) { ... })
( img script) , Event error , onerror() 。 error window,
,
// , base64
window.addEventListener('error',function(e){
let target = e.target, // dom
tagName = target.tagName,
count = Number(target.dataset.count ) || 0, // , 0
max= 3; // , 3
//
if( tagName.toUpperCase() === 'IMG' ){
if(count >= max){
target.src = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD//AK3/ALYH+5hX6FV5N4Y/5GHwx/vyf+iJa9ZrysPhoYVShDZu/potDmwWFhhIzhT2bv6aLQ//Z';
}else{
target.dataset.count = count + 1;
target.src = '//xxx/default.jpg';
}
}
},true)