为什么 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,将出现一个弹出窗口。

Updated Fiddle.

这可能是因为,默认情况下,您的脚本加载类型为 On Load,因此您的所有脚本都已加载,但您的 DOM 尚未呈现。

您已配置 JS Fiddle 以将您的代码包装在 onload 事件处理程序中。

事件顺序是:

  1. 已绑定加载事件处理程序。
  2. DOM 内容加载触发。没有任何监听。
  3. 加载事件触发。
  4. 加载处理程序执行并绑定 DOM 内容加载侦听器

您需要在事件处理程序侦听的事件触发之前绑定事件处理程序。将 JS Fiddle 选项更改为 "no wrap" 选项之一。由于您没有触及 DOM 中的任何内容,因此您 select.

中的哪一个并不重要