Javascript dispatchEvent不工作

Javascript dispatchEvent不工作,javascript,javascript-events,Javascript,Javascript Events,如演示所示,dispatchEvent未按预期工作 关键部分: btn.dispatchEvent( document.createEvent("MouseEvent") .initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) ); 加载后1秒后会弹出警报,但不会出现,控制台中会出现错误: U

如演示所示,
dispatchEvent
未按预期工作

关键部分:

btn.dispatchEvent(
    document.createEvent("MouseEvent")
    .initMouseEvent("click", true, true, window, 0,
        0, 0, 0, 0,
        false, false, false, false,
        0, null)
);
加载后1秒后会弹出警报,但不会出现,控制台中会出现错误:

Uncaught InvalidStateError:未能对“EventTarget”执行“dispatchEvent”:提供的事件为空。

我不知道问题出在哪里,因为我发现了一个几乎完全相同的代码,它正在工作,但不是我的

btn.dispatchEvent(
    document.createEvent("MouseEvent")
    .initMouseEvent("click", true, true, window, 0,
        0, 0, 0, 0,
        false, false, false, false,
        0, null)
);
您的问题是
initMouseEvent
不返回任何内容。你不能把所有这些都合并成一行。你需要打破它

var mEvent = document.createEvent("MouseEvent");
mEvent.initMouseEvent("click", true, true, window, 0,
    0, 0, 0, 0,
    false, false, false, false,
    0, null);

btn.dispatchEvent(mEvent);
这是您链接到的演示中的操作方式。

这一操作:

var btn = document.querySelector("button");
btn.addEventListener("click", function () {
   alert("Clicked.");
});

setTimeout(function () {
  var mEvent = document.createEvent("MouseEvent");
  mEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

  btn.dispatchEvent(mEvent);
}, 1000);

为我工作。在这里使用chrome。@tmckown-这很奇怪,我在Windows上使用chrome 32,但它不工作。对不起,它不会自动弹出。哦,我没有注意到这是问题所在。。。所以我习惯了jQuery,并没有意识到它在原生JS中不是这样工作的。是的,我意识到我不能链接它们。