在For循环中逐一运行URL
Run URL one by one in For loop
我的数组中有几个url,我想一个一个地运行,但是当我在循环中运行它时,它会同时执行,而不会等待。
这是我尝试的:
<html>
<head>
<script>
function work(){
var otherStoryLinksArray = [];
otherStoryLinksArray[0] = 'http://google.com';
otherStoryLinksArray[1] = 'http://www.yahoo.com';
otherStoryLinksArray[2] = 'http://gmail.com';
for(var i=0;i<3;i++){
var openWindow = window.open(otherStoryLinksArray[i]);
setTimeout(function(){openWindow.close();},3000);
}
}
</script>
</head>
<body onload=work();>
</body>
</html>
我想让它打开一个URL,等待30秒,关闭弹出窗口,然后启动另一个URL。
等待你的回复伙计们。任何帮助都会很感激,谢谢…
代码: http://jsfiddle.net/WgR4y/1/
Demo: http://jsfiddle.net/WgR4y/1/show/(确保你禁用了弹出窗口拦截器)
适用于数组中无限数量的url。
var otherStoryLinksArray = [
'http://google.com',
'http://www.yahoo.com',
'http://gmail.com'
],
timeToCloseWindow = 3000;
function work() {
if(otherStoryLinksArray.length==0) return;
var url = otherStoryLinksArray.shift();
var openWindow = window.open(url);
setTimeout(function () {
openWindow.close();
work();
}, timeToCloseWindow);
}
work();
你需要交错setTimeout
调用,因为setTimeout
使用毫秒,30秒= 30000毫秒:
function work () {
var otherStoryLinksArray = [];
otherStoryLinksArray[0] = 'http://google.com';
otherStoryLinksArray[1] = 'http://www.yahoo.com';
otherStoryLinksArray[2] = 'http://gmail.com';
for(var i=0; i<3; i++) {
var openWindow;
setTimeout(function () {
openWindow = window.open(otherStoryLinksArray[i]);
}, 30000 * i); //Open this window
setTimeout(function () {
openWindow.close();
}, 30000 * i + 30000); //Close it 30 seconds from "now"
}
}
使用set interval代替for-loop
function work(){
var otherStoryLinksArray = [];
otherStoryLinksArray[0] = 'http://google.com';
otherStoryLinksArray[1] = 'http://www.yahoo.com';
otherStoryLinksArray[2] = 'http://gmail.com';
var myVar=setInterval(function(){myTimer()},3000);
var i=0;
var openWindow;
function myTimer()
{
if(openWindow != null)
openWindow.close();
if(i < 3)
{
openWindow = window.open(otherStoryLinksArray[i]);
i++;
}
else
clearInterval(myVar);
}
}
var otherStoryLinksArray = [
'http://google.com',
'http://www.yahoo.com',
'http://gmail.com'];
var i = 0;
var openedWindow = null;
function loop(){
openedWindow && openedWindow.close();
if(otherStoryLinksArray[i]){
var openedWindow = window.open(otherStoryLinksArray[i]);
i++;
setTimeout(loop,30000);
}
}
相关文章:
- 如何从“”运行url;.js”;文件
- 如何使用特定的javascript函数创建一个url,以便在加载页面时运行
- 在页面加载完成之前,使用URL参数运行JavaScript
- 仅在 url 索引上运行脚本
- PHP-如何让别人可以'不要更改url中的参数,也不要在刷新页面时再次运行脚本
- 如果URL包含字符串don't运行jQuery函数
- 如何在Javascript中的运行时确定页面URL
- 使用PHP运行Javascript后,获取URL的内容(文本)
- 无法使用json数据url在android中运行实时股票图
- 使用 URL 片段来确定运行哪个 jquery 函数
- 使用 PhoneGap 在运行时将 URL 添加到 iPhone 中 cordova.plist 文件中的白名单中
- 运行字符串数组并在 url 中找到匹配项,如何做到这一点
- Javascript - 如果 url 包含 X,请忽略脚本,否则运行脚本
- Ajax Post请求总是运行错误功能,尽管卷曲到相同的url工作正常
- $window.unload 中的 Post 方法从未调用更改 url,关闭选项卡,但在关闭浏览器时运行
- 如何在Safari的地址栏中运行javascript(外部URL)
- 在后台用javascript运行url
- 如何在chrome扩展的后台运行url
- 如何运行url从cronjobs与javascript代码在我的php文件
- 在For循环中逐一运行URL