现在我们正在研究一种方法来捕获 JavaScript 中发生的错误。我们的一切都可以在浏览器中运行,包括 IE9 及之后的版本。
window.EventTarget.prototype.addEventListener
在现代浏览器中,我们可以使用一个函数来包装,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