-2

domready、onload、body、head に疑問があります。いくつかの js を頭にリンクしているときに、機能しません。それ以外の場合は、体内で機能します。

そして、私はJSFIDDLEで気づいた、と述べました。

これと違いの手段は何ですか?

それについて説明していただけますか?

4

2 に答える 2

3

DOM にアクセスする Javascript は、DOM がロードされるまで実行してはなりません。

ドキュメントのセクションで実行されるコードは<head>、DOM がロードされる前に実行されるため、DOM を操作しようとすると、DOM は単に空になります。

ドキュメントのセクションで実行されるコードは、<body>そのスクリプト タグの前にある DOM 要素の後で実行されますが、スクリプト タグの後の DOM 要素の前に実行されます。

<script>セクションの一番最後、タグ<body>の直前にタグを配置</body>すると、そのスクリプトが実行されたときに DOM 全体が準備されます。

DOMContentLoaded(jsFiddle が呼び出すonDomReady) は、DOM がロードされ、スクリプトがアクセスできるようになったときに発生するイベントです。DOMContentLoaded イベントが発生したときにコードを実行すると、DOM はその時点でコードがアクセスできるようになります。

window.onloadDOM がロードされ、ページの HTML で指定されたリソース (画像など) もロードが完了したときに発生するイベントです。これは常に DOMContentLoaded イベントの後に発生します。

この問題の詳細については、こちらを参照してください: jQuery の $.ready() に相当する純粋な JavaScript ページ/DOM の準備が整ったときに関数を呼び出す方法


ではコードが機能するが、<body>では機能しない場合は、DOM の準備が整う前にタグ<head>でコードを実行するのが早すぎる可能性があります。<head>の最後近くにそのままにしておくか、ロード イベントの 1 つにフックして、必要に応じてタグ<body>に入れることができます。<head>

于 2015-11-26T04:47:38.007 に答える