我有一个简单的内联 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 变量已成功创建,但是当需要在窗口上分派(dispatch)事件时,没有任何触发。非常感谢任何帮助。
最佳答案
EventTarget.dispatchEvent()
方法不接受回调。在分派(dispatch)事件之前,您需要向窗口添加事件监听器:
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);
};
关于javascript - 加载时的窗口调度事件不适用于内联脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58368240/