2016-02-01 44 views
0

請看看jsfiddle 或在這裏:爲什麼evenlistener在jsfiddle中不能正常工作?

JS:

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

爲什麼這evenlistener不工作?它應該工作,因爲它在其他地方起作用。我認爲這是因爲iframe,但我不知道...

任何想法?

回答

2

您已將JS Fiddle配置爲將代碼包裝在onload事件處理程序中。

事件的順序是:

  1. Load事件處理程序的約束。
  2. DOM內容加載的火災。沒有什麼可以聽的。
  3. 加載事件觸發。
  4. 負載處理程序執行,並結合DOM內容加載監聽

JS Fiddle Screenshot

你需要它監聽的火災事件之前,事件處理程序綁定。將JS Fiddle選項更改爲「無包裝」選項之一。由於您沒有觸摸DOM中的任何內容,因此您選擇哪一個並不重要。

+0

謝謝!我正在尋找無處不在的選擇...... – franenos

1

變化load typeNo wrap - in body

要改變Load Type,請在腳本部分標籤JAVASCRIP,會出現一個彈出的意志。

Updated Fiddle

這可能是因爲,默認情況下,您的腳本的負載類型爲On Load,因此所有腳本都已加載,但您的DOM尚未呈現。

+0

謝謝。不能說爲什麼,但它沒有更新(也許是因爲我是誰開始jsfiddle?),我更新它,所以任何人都會看到更多的信息。 – franenos

+0

糟糕!共享不正確的小提琴參考。我已經更新了我的答案。 – Rajesh