我目前正在为检测文档准备情况的 Javascript 方法开发单元测试。此代码已经在框架级别,因此请避免提及此代码已在 jQuery 或其他库中实现。
我已经使用以下代码成功模拟了“readystatechange”更改事件:
var event;
event = document.createEventObject();
event.type = 'readystatechange';
document.fireEvent('onreadystatechange',event);
我没有为“加载”事件做同样的事情。以下代码在 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/