質問: はじめまして。初心者です。 2点質問があります。 --- 1) document.addEventListener('DOMContentLoaded',abc); または、 $(document).ready(function(){ abc(); }); は、絶対に必要なものでしょうか? javascriptを直前に書く場合でも、 これらを用いて書いた方が良いですか? abc(); と書くだけでも実行されるので、 DOMContentLoadedや$(document).readyを 用いる必要があるのかどうか、 ある場合は、なぜ必要なのかを知りたく思っております。 --- 2) document.addEventListener('DOMContentLoaded',abc); または、 $(document).ready(function(){ abc(); }); の違いは、 $(document).readyの方が読み込みが速い $(document).readyはIEの古いバージョンにも対応している の2点で、jQueryを使わずにピュアJavaScriptでスクリプトを書いた場合にも 既にjQueryが読み込まれているページであれば、 読み込みの部分だけ、$(document).readyを使った方が良いという認識ですが 合っていますでしょうか? --- どうぞよろしくお願いいたします。
回答: 該当要素ノードが読み込み完了した事を確定させる目的であれば `DOMContentLoaded` は必須ではありません。 (※外部コンテンツの読み込み完了を捕捉する場合は `window.onload` を使いますが、`script[defer]` 等の非同期読み込みされた要素は `window.onload` では捕捉出来ません。) `$(document).ready` は jQuery v1.x系において `DOMContentLoaded` をサポートしない IE8- 向けの実装がありましたが、それ以外の違いはありません。 IE8- は Microsoft がサポート対象外としている為、特殊な事情がなければ IE8- をサポートする義務はないと思われます。 Re: fffff さん