17

DOMの準備が整う前にjQueryコードを実行する方法はありますか?

4

2 に答える 2

20

jQuery は単なる Javascript であるため、質問は実際には「DOM の準備が整う前に JavaScript を実行することは可能ですか」であり、DOM ではなくドキュメントを意味していると思います。

「ドキュメントの準備が整う前に JavaScript を実行することは可能ですか」という質問に同意できる場合。答えはイエスです。JavaScript は遭遇時に実行されます。

ほとんどのjQuery コードではドキュメントの準備が整っている必要があり$(function(){...})ます$(document).ready(function(){...})が、イベント ハンドラーをアタッチするコードはドキュメントの準備が整う前に必ず実行されます (そうしないと、ドキュメントの準備完了イベントを処理できません)。

通常、Javascript のインクルードは HTML の下部に配置する必要がありますが、それを早く実行したい場合は、単純にドキュメントのヘッダーなどの前に配置することができます。

<html>
  <head>
     ...
     <script>
        //place your code to be executed early here
     </script>
  </head>
...
</html>
于 2012-09-26T09:22:00.247 に答える
4

ドキュメントの head に jQuery を含め、head 内の別の script タグにコードを記述すると、DOM の準備が整う前に実行されます。

<head>
    <script src="jquery.js"></script>
    <script>
        // Do some stuff before the DOM is ready
    </script>
</head>
<body>
    <!-- Browser hasn't got this far, so no elements will be available -->
</body>

ただし、DOM 要素はまだ存在しないため、明らかに、DOM 要素と対話することはできません。


そうは言っても、最新のブラウザで使用できる手法があり、DOM 要素がページに挿入されたときに (ブラウザがレンダリングしている間に) 操作できるようになりますCSS アニメーション イベントに依存します。これを扱いやすくするために、単純なライブラリ (Progressive.js)を作成しました。

于 2012-09-26T09:13:43.903 に答える