gpt4 book ai didi

javascript - window.onerror 获取元素目标

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:40 25 4
gpt4 key购买 nike

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

来源:

<button onclick="a(this);">GO!</button>
<script>
window.onerror = function(message, source, lineno, colno, error) {
console.log(error.stack); // event.target = window
}
</script>

输出:

ReferenceError: a is not defined

at HTMLButtonElement.onclick (onerror.html:1)

这是什么“HTMLButtonElement.onclick”?

var domID = "HTMLButtonElement".id;
addLog(document.querySelector(domID)); //example usage

最佳答案

首先,我强烈建议您不要使用内联 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;
}
});

这是一个 JSFiddle显示示例。

关于javascript - window.onerror 获取元素目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com