2017-04-05 90 views
1

我打開後的頁面完全加載這段JavaScript代碼的iframe一後:在window.onload和運行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。

等待的window.onload

2.如果在window.onload是準備好了,火之前等待10秒以上。

我試圖

<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您可以設置setTimeout函數爲10秒。

替代方式,

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

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

第二個工作+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

你需要用onload進程setTimeout

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