我有一个简单的内联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变量已成功创建,但是当需要在窗口上分派事件时,什么也不会触发。任何帮助将不胜感激。
答案 0 :(得分:2)
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);
};
答案 1 :(得分:0)
您可以附加EventListener
window.addEventListener('load',()=>{
//code
});