Eri*_*ier 5 javascript scripting internet-explorer unit-testing
MSDN上的onerror页面指出,onerror处理程序可以附加到脚本元素,并且"在对象加载期间发生错误时触发".
出于单元测试的目的,我试图让这个onerror处理程序触发,但找不到合适的例子.
以下代码在Firefox中触发错误,但Internet Explorer中不显示任何警报
<script src="http://www.google.com/NOTFOUND.js" onerror="alert('error fired')"></script>
Run Code Online (Sandbox Code Playgroud)
有没有人知道script.src的值会触发附加到script.onerror的处理程序?
我发现这隐藏在一些MSDN文档中:
请注意,文档错误地说这也适用于元素; 错误将在3月份Internet Explorer 5最终版本的Workshop文档中修复.
接下来我想到的就是onreadystatechange事件:
<script src="http://www.google.com/NOTFOUND.js" onreadystatechange="alert(this.readyState)">
Run Code Online (Sandbox Code Playgroud)
这个事件对我来说是两次,一次是"加载",另一次是"加载",无论脚本是否有效.我发现的其他文档说,有时它会触发一个完整的事件,并且它应该在什么时候发射它并不是很清楚.所以它看起来不会起作用.
所以我认为你留下了一个hacky解决方案,检查脚本应该声明的变量是否确实存在.在HTML中:
<script src="http://yourdomain.com/declare_foo.js"></script>
<script>if (typeof foo == "undefined") {alert ('error loading script');}</script>
Run Code Online (Sandbox Code Playgroud)
然后当然在declare_foo.js中,你有
var foo = 'Script loaded successfully';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11048 次 |
| 最近记录: |