我目前正在为Javascript方法开发单元测试,以检测文档的准备情况。该代码已经在框架级别,因此请避免提及已在jQuery或其他库中实现的代码。
我已经使用以下代码成功模拟了“readystatechange”更改事件:
var event;
event = document.createEventObject();
event.type = 'readystatechange';
document.fireEvent('onreadystatechange',event);
我对'load'事件没有做同样的事情。以下代码在IE7中导致无效参数错误,该错误由最后一行对fireEvent的调用引发:
event = document.createEventObject();
event.type = 'load';
document.fireEvent('onload',event);
有没有人做过或者以前做过失败?我也对以其他方式触发事件的任何建议感兴趣。
编辑:,根据Crescent Fresh的建议,我将代码更改为:
event = document.createEventObject();
event.type = 'load';
document.body.fireEvent('onload',event);
没有更多错误,但是不会触发“onload”的侦听器。这是我的配置方式:
document.attachEvent('onload',listener);
最佳答案
根据this page at MSDN,onload
没有document
事件。
您需要window.onload
或document.body.onload
。在IE中,它们是相同的:由于历史原因,<body onload="...">
实际上设置了window.onload
,因此MS决定将document.body.onload
用作window.onload
的别名。
正如Eric在评论中提到的那样,这样做的问题是,似乎没有一种手动触发窗口事件的方法,这意味着可能没有Eric问题的解决方案。
关于javascript - 如何在IE中的文档上触发 “onload”事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1874866/