javascript - 如何在 IE 中的文档上触发 "onload"事件

标签 javascript unit-testing internet-explorer events document

我目前正在为检测文档准备情况的 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.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/

相关文章:

JavaScript : how to embed HTML code, 如何引用?

javascript - 减少javascript中的输入数量

javascript - 使用 Jest 测试组件

internet-explorer - Internet Explorer 不遵循跨域的相对重定向 URL

javascript - Angular 点击事件共享给其他点击

javascript - PerformanceNavigationTiming API 的特征检测

javascript - 如何对传递给 JavaScript 函数的匿名回调进行单元测试?

php - 尝试从 symfony2 爬虫中选择一个表单时出错?

wpf - 无法在 Internet Explorer 11 上运行 Xbap 应用程序

css - Internet Explorer 兼容的 CSS 过滤器生成器