1

現在、JavaScript で発生するエラーをキャッチする方法に取り組んでいます。IE9 以降のブラウザーですべてが動作します。

最新のブラウザーでは、エラーをキャプチャするためにwindow.EventTarget.prototype.addEventListenera を実行する関数でラップできます。try/catchたとえば、これを行うことができます:

var addEventListener = window.EventTarget.prototype.addEventListener;

window.EventTarget.prototype.addEventListener = function (event, callback, bubble) {
return addEventListener.call(this, event, WATCH_FUNCTION(callback), bubble)
};

上記WATCH_FUNCTIONには私たちtry/catchのものが含まれています。attachEvent現在、IE8 の要素に存在するをラップする方法がわかりません。例えば:

var myObject = document.getElementById('my-id');

myObject.attachEvent('onclick', function () {reference-to-undefined-var});

私たちの希望は、添付イベントによって発生するエラーをラップすることです。今のところ、常にattachEvent をラップする方法がわかりません。私たちはサード パーティのライブラリになるため、別の形式のイベントの添付を人々に強制することはできません。

この質問を見る人へのメモとして、私は以下を上書きしようとしましたが、どれもうまくいかないようです:

  • Object.prototype.attachEvent
  • Element.prototype.attachEvent
  • window.attachEvent
4

1 に答える 1