【问题标题】:Manually dispatchEvent DOMContentLoaded手动 dispatchEvent DOMContentLoaded
【发布时间】:2012-02-27 12:38:29
【问题描述】:

有没有办法手动触发DOMContentLoaded 事件?

我正在尝试为一些客户端 JavaScript 编写单元测试,它在 DOMContentLoaded 事件上做了一些事情。

以下操作无效:

document.dispatchEvent("DOMContentLoaded")

document.body.dispatchEvent("DOMContentLoaded")

【问题讨论】:

    标签: javascript dom dom-events


    【解决方案1】:

    这在 Firefox 中适用于我:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-03
        • 2012-11-01
        • 2011-09-09
        • 2020-12-14
        • 2014-07-09
        • 2022-01-01
        相关资源
        最近更新 更多