Javascript window.onerror获取元素目标
如何在javascript中获取事件错误中的元素目标 资料来源:Javascript window.onerror获取元素目标,javascript,onerror,Javascript,Onerror,如何在javascript中获取事件错误中的元素目标 资料来源: <button onclick="a(this);">GO!</button> <script> window.onerror = function(message, source, lineno, colno, error) { console.log(error.stack); // event.target = window } </script> 首
<button onclick="a(this);">GO!</button>
<script>
window.onerror = function(message, source, lineno, colno, error) {
console.log(error.stack); // event.target = window
}
</script>
首先,我强烈建议您不要使用内联onclick事件处理程序,因为您遇到了这样的问题-它们非常难以调试,并且不提倡将html用于标记,js文件用于逻辑 其次,覆盖onerror处理程序也有风险,因为您不知道第三方代码(如果有的话)可能会从onerror处理程序中得到什么。这与不重写基本对象的规则相同,例如Array.map=function{} 但是,在本例中获取元素的方法是以不同的方式编写事件处理程序,以捕获错误并使用可用的元素信息重新抛出
button.addEventListener('click', function() {
try {
a(this);
} catch (e) {
e.message = e.message + " - element clicked: " + this.id;
throw e;
}
});
下面是一个示例。无法从onerror获取元素。
button.addEventListener('click', function() {
try {
a(this);
} catch (e) {
e.message = e.message + " - element clicked: " + this.id;
throw e;
}
});