为了账号安全,请及时绑定邮箱和手机立即绑定

加载时的窗口调度事件不适用于内联脚本

加载时的窗口调度事件不适用于内联脚本

收到一只叮咚 2021-11-18 21:10:30
我有一个简单的内联 hbs 脚本,它应该在窗口加载时广播一个自定义事件:<script>    window.onload = function () {        var evt = new Event('global:initialize-alert-banners');        window.dispatchEvent(evt, function(e) {            console.log('why doesnt this broadcast?', e)        });    };</script>使用 Node 调试器,我可以看到 evt 变量已成功创建,但是当需要在窗口上调度事件时,没有任何触发。任何帮助是极大的赞赏。
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

该EventTarget.dispatchEvent()方法不接受回调。在调度事件之前,您需要向窗口添加一个事件侦听器:


window.addEventListener('global:initialize-alert-banners', () => console.log('global:initialize-alert-banners dispatched'))


window.onload = function() {

  var evt = new Event('global:initialize-alert-banners');

  window.dispatchEvent(evt);

};


查看完整回答
反对 回复 2021-11-18
?
心有法竹

TA贡献1866条经验 获得超5个赞

您可以附加 EventListener


window.addEventListener('load',()=>{


    //code


});


查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信