Eri*_*ier 7 javascript events internet-explorer unit-testing document
我目前正在为Javascript方法开发单元测试,以检测文档的准备情况.此代码已经处于框架级别,因此请避免在jQuery或其他库中实现此代码.
我已使用以下代码成功模拟了'readystatechange'更改事件:
var event;
event = document.createEventObject();
event.type = 'readystatechange';
document.fireEvent('onreadystatechange',event);
Run Code Online (Sandbox Code Playgroud)
我没有为'load'事件做同样的事情.以下代码导致IE7中的无效参数错误,在最后一行调用fireEvent抛出:
event = document.createEventObject();
event.type = 'load';
document.fireEvent('onload',event);
Run Code Online (Sandbox Code Playgroud)
有没有人这样做过,或者之前没有这样做过?我也对任何以不同方式解雇事件的建议感兴趣.
编辑:按照Crescent Fresh的建议,我将代码更改为:
event = document.createEventObject();
event.type = 'load';
document.body.fireEvent('onload',event);
Run Code Online (Sandbox Code Playgroud)
没有更多的错误,但'onload'的监听器不会触发.这是我配置它的方式:
document.attachEvent('onload',listener);
Run Code Online (Sandbox Code Playgroud)
根据MSDN 上的此页面onload
,没有document
.
您想要window.onload
或document.body.onload
。这些在 IE 中是相同的:由于历史原因,<body onload="...">
实际上设置了window.onload
,因此 MS 决定为 制作document.body.onload
一个别名window.onload
。
问题是 - 正如埃里克在评论中提到的 - 似乎没有办法手动触发窗口事件,这意味着埃里克的问题可能没有解决方案。
归档时间: |
|
查看次数: |
19482 次 |
最近记录: |