通过chrome / javascript控制台触发匿名事件?

时间:2017-08-23 19:36:11

标签: javascript jquery

基于this question,我创建了一个自定义匿名事件监听器,如下所示:

function init() {
    console.log("Initiating widgets");
}

window.addEventListener("widgetInit", init());

我可以使用代码中的$(window).trigger('widgetInit');来调用它,但是如果我将其粘贴到控制台中,它只会返回窗口对象。

有没有办法通过控制台模拟事件而不修改代码?

3 个答案:

答案 0 :(得分:4)

也许您可以尝试使用原生DOM方法:

window.dispatchEvent(new Event('widgetInit'));

答案 1 :(得分:1)

看起来jQuery是用于CustomEvent的自己的事件系统。 如果您使用jQuery来监听事件,它将正常工作。

否则,它们(不太受支持)创建CustomEvent的方式:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

答案 2 :(得分:1)

我认为你的听众应该是:

window.addEventListener("widgetInit", init);

所以init没有括号......

当你通过直接在控制台中输入来定位jQuery元素时,这个元素总是被返回。 所以触发器有效...但我认为你的听众没有工作......