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は複数のパラメータを受け入れることができます.
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)