手动dispatchEvent DOMContentLoaded

问题描述 投票:0回答:2

有什么方法可以手动触发

DOMContentLoaded
事件吗?

我正在尝试为一些客户端 JavaScript 编写一个单元测试,该测试在

DOMContentLoaded
事件上执行一些操作。

以下方法不起作用:

document.dispatchEvent("DOMContentLoaded")

document.body.dispatchEvent("DOMContentLoaded")
javascript dom dom-events
2个回答
34
投票

由于

initEvent
已被弃用,最好使用
Event
构造函数,如下所示:

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

28
投票

这在 Firefox 中对我有用:

var DOMContentLoaded_event = document.createEvent("Event")
DOMContentLoaded_event.initEvent("DOMContentLoaded", true, true)
window.document.dispatchEvent(DOMContentLoaded_event)
© www.soinside.com 2019 - 2024. All rights reserved.