DOMの準備が整う前にjQueryコードを実行する方法はありますか?
2 に答える
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>
ドキュメントの 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)を作成しました。