为什么Evenlistener在jsfiddle没有正常工作?

时间:2016-02-01 12:49:30

标签: javascript jsfiddle addeventlistener

请查看jsfiddle 或者在这里:

JS:

document.addEventListener('DOMContentLoaded', function myFunction() {
alert("Hello! I am an alert box");
}, false);

为什么这个Evenlistener不工作?它应该工作,因为它在其他地方工作。我认为这是因为iframe,但我不知道......

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

事件的顺序是:

  1. 加载事件处理程序已绑定。
  2. DOM Content Loaded fires。没有什么可以听的。
  3. 加载事件触发。
  4. 加载处理程序执行并绑定DOM Content Loaded监听器
  5. JS Fiddle Screenshot

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

答案 1 :(得分:1)

load type更改为No wrap - in body

要更改Load Type,请点击脚本部分中的标签JAVASCRIP,系统会显示一个弹出式广告。

Updated Fiddle

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