JavaScript の読み込みを遅らせるためのツールやテクニックがいくつかあることは知っていますが、ページの残りの部分のダウンロードとレンダリングが完了するまで読み込みを遅らせたい iframe があります (iframe は非表示にあり、誰かがページ上の特定のタブをクリックするまで表示されます. iframe の読み込みを遅らせる方法はありますか? 提案があれば大歓迎です. ありがとう!
11 に答える
jqueryなら簡単!
iframe をロードするコードを で囲むか、これらを$()
使用するかのどちらか$(document).ready(function(){})
は同じであり、DOM の準備ができた後にコードを実行します!
例えば
$(document).ready(function(){
$('iframe#iframe_id').attr('src', 'iframe_url');
});
http://www.learningjquery.com/2006/09/introducing-document-readyで詳細を参照してください。
JavaScript なしで実行する必要があるかどうかはわかりません。しかし、最善の方法は、iframe の直後で src を変更することです。
<iframe id="myIframe" src="http://.." />
<script type="text/javascript">
var iframe = document.getElementById('myIframe').src = iframe.src;
iframe.src = '';
document.onload = function(){iframe.src = src;}
</script>
$(document).ready を使用すると、DOM ツリーがビルドされた直後に Iframe のレンダリングが開始されますが、サイドのすべてのコンテンツが読み込まれる前に、これはあなたが望むものではないと思います。
jquery には、onload と同じイベント .load があります (すべてのリソースがロードされた後)。
$(window).load(function(){ iframe.src = src; }
onLoad イベントまたはボタン クリック ハンドラで Javascript を使用して、iframe の src 属性を設定します。
css、js などの後に最後にロードする必要がある場合は、 defer 属性を使用できます。
iframe defer src="//player.vimeo.com/video/89455262"
CSS を使用して iframe に display:none を適用し、jQuery の .show を次のように使用することもできます。
$(document).ready(function(){
$('iframe.class_goes_here').show();
});
または私の好きな使い方
setTimeout('your app', 6000)
これにより、関数を呼び出すのにxミリ秒待機します。