Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.onerror获取元素目标_Javascript_Onerror - Fatal编程技术网

Javascript window.onerror获取元素目标

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> 首

如何在javascript中获取事件错误中的元素目标

资料来源:

<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;
    }
});