gpt4 book ai didi

javascript - Firefox 无法正确处理 window.onerror 中的 try/catch block

转载 作者:行者123 更新时间:2023-11-29 15:48:49 29 4
gpt4 key购买 nike

Firefox 似乎将 window.onerror 事件处理程序中发生的任何错误都视为致命异常,即使该异常已被捕获。以下代码示例在 IE、Chrome 和 Safari 中按预期工作。在 Firefox 中,调用不存在的 abc() 方法会立即停止执行,而不是执行 catch block 和 onerror 处理程序的其余部分。

这是 Firefox 中的预期行为还是我做错了什么?

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.7.js"></script>
<script type="text/javascript">
$(document).ready(function() {
window.onerror = function() {
console.log('begin onerror');

try {
abc(); // create a runtime error by calling a method that doesn't exist
} catch(e) {
console.log('catch block');
}

console.log('end onerror');
};

$('#btn').click(function() {
xyz(); // create a runtime error by calling a method that doesn't exist
});
});
</script>
</head>
<body>
<form action="" name="frmEdit">
<input type="button" value="Test" id="btn" name="btn" />
</form>
</body>
</html>

最佳答案

作为this testcase演示,它与 jQuery 有关。

用触发此行为所需的最少代码替换 jQuery 依赖项将解释这一点或使其更容易在 Firefox 端进行调试和修复。

[编辑] 感谢 jrotello、dmethvin 和 Firefox 开发人员,underlying issue应该在 Firefox 14 中修复(您可以在发布之前使用 http://nightly.mozilla.org/ 对其进行测试)

关于javascript - Firefox 无法正确处理 window.onerror 中的 try/catch block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8218098/

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