如何在 Internet Explorer 中触发 script.onerror?

2024-01-07

The MSDN 上的 onerror 页面 http://msdn.microsoft.com/en-us/library/cc197053%28VS.85%29.aspx指出 onerror 处理程序可以附加到脚本元素,并且它“在对象加载期间发生错误时触发。”。

出于单元测试的目的,我试图触发此 onerror 处理程序,但找不到合适的示例。

以下代码在 Firefox 中触发错误,但在 Internet Explorer 中不显示任何警报

<script src="http://www.google.com/NOTFOUND.js" onerror="alert('error fired')"></script>

有谁知道 script.src 的值会触发附加到 script.onerror 的处理程序?


我找到了这个埋藏在一些 MSDN 文档中 http://msdn.microsoft.com/en-us/library/ms976144.aspx:

请注意,文档错误地表示这也适用于元素;该错误将在 3 月份的 Internet Explorer 5 最终版本的 Workshop 文档中得到修复。

我想到的下一件事是 onreadystatechange 事件:

<script src="http://www.google.com/NOTFOUND.js" onreadystatechange="alert(this.readyState)">

这个事件对我来说会触发两次,一次是“正在加载”,另一次是“已加载”,无论脚本是否有效。我发现的其他文档说有时它会触发一个完整的事件,并且不清楚何时应该触发。所以看起来这行不通。

因此,我认为您只剩下一个棘手的解决方案,即检查脚本应该声明的变量是否确实存在。在 HTML 中:

<script src="http://yourdomain.com/declare_foo.js"></script>
<script>if (typeof foo == "undefined") {alert ('error loading script');}</script>

当然,在声明 food.is 时,你会有

var foo = 'Script loaded successfully';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Internet Explorer 中触发 script.onerror? 的相关文章

随机推荐