我怎样才能一个接一个地打开30个网址,每个网址都有30秒的延迟。每个新网址都可以在同一个窗口中打开,也可以有一个iframe,所有网址都会一个接一个地打开。
答案 0 :(得分:1)
在新标签页中打开网址。使用setInterval
设置加载之间的时间间隔。
Javascript代码:
var targets = [ //Place target URL here
'http://www.google.com',
'http://www.EnggForum.com/'
];
var iTarget;
function nextTarget(){
window.open( targets[iTarget], 'target' );
if( ++iTarget >= targets.length ) {
iTarget = 0;
}
}
function start() {
iTarget = 0;
nextTarget();
setInterval( nextTarget, 30000 ); //time interval here 30000 = 30 Sec
}
答案 1 :(得分:0)
要在重复的时间循环上执行任何操作,您只需创建一个使用setTimeout调用自身的函数。在这种情况下,您希望它自己调用,直到它用完了要显示的URL。
要导航iFrame,只需设置它的src属性。
结合这两个答案,你有:
<强> HTML:强>
<iframe id='the_iframe'></iframe>
<强> JavaScript的:强>
var urls = [
'https://www.youtube.com/embed/wZNYDzNGB-Q',
'https://www.youtube.com/embed/DRs0Kw2rUVQ',
'https://www.youtube.com/embed/JmENgrVOwgA',
'https://www.youtube.com/embed/2vEStDd6HVY'
];
var seconds = 30;
function openNext(){
document.getElementById('the_iframe').src = urls.shift();
if(urls.length)setTimeout('openNext()',seconds*1000);
}
openNext();
JsFiddle: http://jsfiddle.net/trex005/z09roapd/
同样重要的是要注意,许多网站在其网页上设置了不允许对其进行框架设置的标头。如果你需要使用弹出窗口,你可以在这里使用所有相同的逻辑,但是你可以像这样创建弹出窗口:
var popup = window.open(urls.shift();, 'popup');
然后像这样导航:
if(!popup.closed) {
popup.location.href = urls.shift();
}
答案 2 :(得分:-1)
查看JS的setTimeout和setInterval方法 Link1和 Link2 强>
或尝试简单的代码
<!DOCTYPE html>
<html>
<body>
<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<p>After clicking away the alert box, an new alert box will appear in 3 seconds. This goes on forever...</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
setInterval(function(){ alert("Hello"); }, 3000);
}
</script>
</body>
</html>