为什么 evenlistener 在 jsfiddle 上不能正常工作?
Why evenlistener not working properly at jsfiddle?
请看jsfiddle
或此处:
JS:
document.addEventListener('DOMContentLoaded', function myFunction() {
alert("Hello! I am an alert box");
}, false);
为什么这个 evenlistener 不工作?它应该有效,因为它在其他任何地方都有效。我认为这是因为 iframe 但我不知道...
有什么想法吗?
将load type
改为No wrap - in body
要更改 Load Type
,请单击脚本部分中的标签 JAVASCRIP
,将出现一个弹出窗口。
这可能是因为,默认情况下,您的脚本加载类型为 On Load
,因此您的所有脚本都已加载,但您的 DOM 尚未呈现。
您已配置 JS Fiddle 以将您的代码包装在 onload 事件处理程序中。
事件顺序是:
- 已绑定加载事件处理程序。
- DOM 内容加载触发。没有任何监听。
- 加载事件触发。
- 加载处理程序执行并绑定 DOM 内容加载侦听器
您需要在事件处理程序侦听的事件触发之前绑定事件处理程序。将 JS Fiddle 选项更改为 "no wrap" 选项之一。由于您没有触及 DOM 中的任何内容,因此您 select.
中的哪一个并不重要
请看jsfiddle 或此处:
JS:
document.addEventListener('DOMContentLoaded', function myFunction() {
alert("Hello! I am an alert box");
}, false);
为什么这个 evenlistener 不工作?它应该有效,因为它在其他任何地方都有效。我认为这是因为 iframe 但我不知道...
有什么想法吗?
将load type
改为No wrap - in body
要更改 Load Type
,请单击脚本部分中的标签 JAVASCRIP
,将出现一个弹出窗口。
这可能是因为,默认情况下,您的脚本加载类型为 On Load
,因此您的所有脚本都已加载,但您的 DOM 尚未呈现。
您已配置 JS Fiddle 以将您的代码包装在 onload 事件处理程序中。
事件顺序是:
- 已绑定加载事件处理程序。
- DOM 内容加载触发。没有任何监听。
- 加载事件触发。
- 加载处理程序执行并绑定 DOM 内容加载侦听器
您需要在事件处理程序侦听的事件触发之前绑定事件处理程序。将 JS Fiddle 选项更改为 "no wrap" 选项之一。由于您没有触及 DOM 中的任何内容,因此您 select.
中的哪一个并不重要