2017-04-05 12 views
1

を実行します。Window.onloadと、ページが完全にこのJavaScriptコードがロードされた後、私はインラインフレームを開くx秒後に

<script> 
    function loadFrame() {   
    var iframe = document.getElementById("defframe"); 
    iframe.src = "/frame.php" 
}; 
window.onload = loadFrame; 
</script> 

HTMLコード

<iframe id="defframe" frameBorder="0" scrolling="no" src="about:blank" /> </iframe> 

これは完璧に動作しますが、私が持っていますページが読み込まれてから10秒後にこのiframeを読み込みます。

1. window.onloadの準備ができている場合は、火災の前に10秒以上待っwindow.onload

2.を待ちます。

は私がを試してみました:

<script> 
    window.onload = function loadFrame() {   
    var iframe = document.getElementById("defframe"); 
    iframe.src = "/frame.php" 

    setTimeout(defframe, 10000) 
}; 
</script> 

成功せず。

+0

なぜ10秒を待つのか? – PHPglue

+0

iframeが読み込まれているときに、iframeのコンテンツが完全に読み込まれるまで、ウェブサイト上のリンクをクリックできないためです。 10秒後にフレームが最初にロードされるとき。ユーザーが読み込み中で、フレームが読み込まれている間にユーザーがリンクをクリックする確率は少し下がります。 – labu77

答えて

1

でこれを行うための最も簡単な方法は、それがあるとしてちょうど別の方法でそれを呼び出す、あなたの機能を残しています。コードの下に従ってください:: HTML:

<iframe id="defframe" frameBorder="0" scrolling="no" src="about:blank" > </iframe> 

JS:

function loadFrame() { 
    var iframe = document.getElementById("defframe"); 
    iframe.src = "/frame.php" 
}; 
window.onload = setTimeout(loadFrame, 10000); 

ワーキングJSfiddleコード:: https://jsfiddle.net/rnrztx1d/1/

+1

ありがとうございます。 – labu77

+0

@ labu77よろしくお願いします。 :) –

+0

'onload'に関数を割り当てる必要があります。これにより、一部のブラウザで問題が発生する可能性があります。 – PHPglue

1

あなたはこのように行うことができ、

window.onload = function loadFrame() {   
    setTimeout(function(){ 
      var iframe = document.getElementById("defframe"); 
      iframe.src = "/frame.php" 

    }, 10000) 
}; 

window.loadにあなたが10秒間setTimeout関数を設定することができますありがとうございました。

代替方法

window.onload = function() { 
    setTimeout(loadFrame(), 10000); 
}; 

function loadFrame() { 
    var iframe = document.getElementById("defframe"); 
    iframe.src = "/frame.php" 
} 
+0

第2の作業+1 – DaYdReAmeR

+0

あなたのお手伝いをありがとうございます。その働き。 – labu77

+0

'setTimeout'は実行されない関数をとります。 – PHPglue

0

は、我々は設定した時間外メソッド内のコードを配置する必要があります。

HTML:

<iframe id="defframe" frameBorder="0" scrolling="no" src="about:blank" /> </iframe> 

JS

window.onload = function loadDefFrame() { 
setTimeout(function() { 
loadFrame(); //call your method 
},10000)}; 

完全なコード:

<!DOCTYPE html> 
<html> 
<head> 
<title>Page Title</title> 
</head> 
<script> 

    window.onload = function loadDefFrame() { 
    setTimeout(function() { 
    loadFrame(); //call your method 
    },10000)}; 

    function loadFrame() {   
    var iframe = document.getElementById("defframe"); 
    iframe.src = "/frame.php" 
    }; 

</script> 
<body> 

<iframe id="defframe" frameBorder="0" scrolling="no" src="about:blank" /></iframe> 

</body> 
</html> 
+0

親切なお手伝いもありがとうございます。あなたのコードも動作しています。 – labu77

+0

お寄せいただきありがとうございます。幸せなコーディング! –

0

あなたはをラップする必要があります0プロセスはsetTimeout

window.onload = function loadFrame() { 
    setTimeout(function() { 
     var iframe = document.getElementById("defframe"); 
     iframe.src = "/frame.php"; 
    }, 10000); 
}; 
関連する問題