我目前正在为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 MSDNonload没有document事件。

您需要window.onloaddocument.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/

10-12 20:47