2017-04-05 89 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); 
};