回答編集履歴
1
DOMContentLoadedイベントの挙動についての解説を訂正
test
CHANGED
@@ -1,8 +1,30 @@
|
|
1
|
+
以下は`document`オブジェクトが発した`DOMContentLoaded`イベントが`window`オブジェクトにバブリングしない前提で回答していましたが, 実際は`window`オブジェクトで`DOMContentLoaded`イベントをキャッチできるようです.
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
従ってコードそのものに問題はないものの, 本質的に「JavaScriptファイルを読み込んでいないことにより, 実際にはスクリプトが実行されていなかった」ことが問題だったことになります.
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
参考)
|
10
|
+
|
11
|
+
https://developer.mozilla.org/ja/docs/Web/Reference/Events/DOMContentLoaded
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
---
|
16
|
+
|
17
|
+
※以下間違った記述
|
18
|
+
|
19
|
+
|
20
|
+
|
1
21
|
`window`オブジェクトは`load`イベントを,`document`オブジェクトは`DOMContentLoaded`イベントを発します.
|
2
22
|
|
3
23
|
|
4
24
|
|
5
|
-
従って, `window`オブジェクトの`DOMContentLoaded`イベントをリッスンしている現状のコードではリスナ関数が呼び出されることはありません.
|
25
|
+
従って, `window`オブジェクトの`DOMContentLoaded`イベントをリッスンしている現状のコードではリスナ関数が ~~呼び出されることはありません~~ .
|
26
|
+
|
27
|
+
→`DOMContentLoaded`イベントは上位の`window`オブジェクトでキャッチできるのでリスナ関数は呼び出されます.
|
6
28
|
|
7
29
|
|
8
30
|
|