21

ページコンテンツ(HTML要素全体)が受信されたらすぐにスクリプトを起動する必要がありますが、まだレンダリングする必要はありません。

ページの最上部にコードを実行する単純な<script>タグがあるだけでうまくいくと思いますか?

質問を別の方法で定式化するには、DOMの準備ができているということは、すべての要素とリソースがプルされてレンダリングされていることを意味しますか?

4

5 に答える 5

41

DOM対応とは、すべてのHTMLがブラウザによって受信され、解析されてDOMツリーになり、操作できるようになったことを意味します。

これは、ページが完全にレンダリングされる前に発生します(画像、CSS、JavaScript、その他のリンクされたリソースなど、外部リソースがまだ完全にダウンロードされていない可能性があるため)。

実際のイベントはと呼ばれwindow.DOMContentLoadedます。

于 2012-09-28T09:57:07.197 に答える
7

DOMreadyの意味:DOM構造はブラウザのメモリに組み込まれています。非同期でページはすでにレンダリングを開始していますが、画像や動画などの外部リソースが後で読み込まれるため、まだ終了していない可能性があります。

于 2012-09-28T09:58:32.040 に答える
5

関数を試してみることもできます

window.onload = function(){
   //your code
  }

また

body.onload = function(){
   //your code
  }

jQueryを使用したくない場合。

ただし、DOMが読み込まれたからといって、ページが読み込まれたわけではありません。そのイベントの後に、iframe、javascript、画像、cssが読み込まれる可能性があります。

DOMイベントのJavascriptチュートリアルには良いチュートリアルがあります

于 2012-09-28T10:03:04.800 に答える
5

ページコンテンツ(HTML要素全体)が受信されたらすぐにスクリプトを起動する必要がありますが、まだレンダリングする必要はありません。

ページの最上部にコードを実行する単純なタグがあるだけでうまくいくと思いますか?

その場合DOMContentLoadedイベントが必要になる可能性があります。したがって、次のように使用できます。

    <head>
    <!-- … --->
        <script>
window.addEventListener('DOMContentLoaded',function () {
    //your code here
});
        </script>
    </head>

質問を別の方法で定式化するには、DOMの準備ができているということは、すべての要素とリソースがプルされてレンダリングされていることを意味しますか?

「 DOMready」イベントはありません。あなたはおそらくjQueryの.ready()、またはこの用語のいくつかの同様の奇妙な使用法を考えているでしょう(例えば、Googleは彼らが参照する同様の名前のプロプライエタリイベントも持っています)。

ただし、イベントの場合( MDNDOMContentLoadedを引用するには):

DOMContentLoadedイベントは、スタイルシート、画像、およびサブフレームの読み込みが完了するのを待たずに、最初のHTMLドキュメントが完全に読み込まれて解析されたときに発生します。

于 2019-09-05T16:12:51.823 に答える
-1

Document Object Model(DOM)は、HTML、XHTML、およびXMLドキュメント内のオブジェクトを表現および操作するためのクロスプラットフォームで言語に依存しない規則です。[1] すべてのドキュメントのノードは、DOMツリーと呼ばれるツリー構造で編成されています

于 2014-09-27T09:48:19.533 に答える