jQuery ではなくプレーンな JavaScript のみを使用するという要件があります。ページが完全にロードされたときではなく、DOM がロードされるとすぐに (関数を使用して) いくつかの変数を初期化する必要があります。要するに、ページ全体がロードされるのを待つべきではありません。jQuery では、関数を使用して非常に簡単に実行できdocument.ready()
ます。
任意の関数を使用して JavaScript で実装することは可能ですか?
jQuery ではなくプレーンな JavaScript のみを使用するという要件があります。ページが完全にロードされたときではなく、DOM がロードされるとすぐに (関数を使用して) いくつかの変数を初期化する必要があります。要するに、ページ全体がロードされるのを待つべきではありません。jQuery では、関数を使用して非常に簡単に実行できdocument.ready()
ます。
任意の関数を使用して JavaScript で実装することは可能ですか?
「実用的な」方法はscript
、ドキュメントの末尾の前にブロックを配置することです(domreadyと実際には同等ではありません)
...
<script>...</script>
</body>
</html>
またはhttp://snipplr.com/view/6029/domreadyjs/のような DomReady イベントのさまざまな純粋な js 実装のいずれかを使用します
DOMContentLoaded
サポートされている場合は、イベントを使用できます。
MSDN: http://msdn.microsoft.com/en-us/library/windows/apps/hh868490.aspx
MDN: https://developer.mozilla.org/en/DOM/DOM_event_reference/DOMContentLoaded
このように達成されることもあります
<body>
<!--
All your html tags here
....
....
-->
<script type="text/javascript">
//this should execute after the above tags and elements have rendered
</script>
</body>
「準備完了イベント」を本当に待ちたい場合は、たとえばそのようなことを使用できます。
(function(w,evt,fn){
if (w.addEventListener){// W3C DOM
w.addEventListener(evt,fn,false);
}
else if (w.attachEvent) { // IE DOM
w.attachEvent("on"+evt, fn);
}
})(window,'load',function(){
// your code here
});
ただし、適切に配置された「スクリプト」タグを使用する方が実際には優れています。コードがおそらく機能し、すぐに開始されるからです。