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

我有一个简单的内联 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 变量已成功创建,但是当需要在窗口上调度事件时,没有任何触发。任何帮助是极大的赞赏。


收到一只叮咚
浏览 108回答 2
2回答

侃侃尔雅

该EventTarget.dispatchEvent()方法不接受回调。在调度事件之前,您需要向窗口添加一个事件侦听器:window.addEventListener('global:initialize-alert-banners', () => console.log('global:initialize-alert-banners dispatched'))window.onload = function() {&nbsp; var evt = new Event('global:initialize-alert-banners');&nbsp; window.dispatchEvent(evt);};

心有法竹

您可以附加 EventListenerwindow.addEventListener('load',()=>{&nbsp; &nbsp; //code});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript