手动dispatchEvent DOMContentLoaded

时间:2012-02-05 21:42:50

标签: javascript dom javascript-events

有没有办法手动触发DOMContentLoaded事件?我正在尝试为一些客户端javascript编写单元测试,它在DOMContentLoaded事件上做了一些事情。

以下内容不起作用:document.dispatchEvent(“DOMContentLoaded”)或document.body.dispatchEvent(“DOMContentLoaded”);

2 个答案:

答案 0 :(得分:25)

这适用于我的Firefox:

var DOMContentLoaded_event = document.createEvent("Event")
DOMContentLoaded_event.initEvent("DOMContentLoaded", true, true)
window.document.dispatchEvent(DOMContentLoaded_event)

答案 1 :(得分:6)

由于initEvent已弃用reference,因此最好使用Event这样的构造函数:

window.document.dispatchEvent(new Event("DOMContentLoaded", {
  bubbles: true,
  cancelable: true
}));