我正在建立一个网站,每隔30秒我就会打开一个新窗口。我得到它正确地打开新窗口,但我想在打开新窗口之前关闭最后一个窗口,因此一次只打开一个窗口。我该怎么做?到目前为止,这是我的代码:
<script type="text/javascript">
function open_win() {
window.open("http://www.wol.com");
setTimeout(window.open('http://www.bol.com'),35000);
setTimeout(window.open('http://lol.com'),70000);
setTimeout(window.open('http://col.com'),105000);
}
</script>
答案 0 :(得分:1)
您可以通过在window.open的返回值上调用window.close来关闭打开的窗口。所以:
<script type="text/javascript">
function open_win() {
var wol,bol,lol;
wol=window.open("http://www.wol.com");
setTimeout(function(){window.close(wol);bol=window.open('http://www.bol.com')},35000);
setTimeout(function(){window.close(bol);lol=window.open('http://lol.com')},70000);
setTimeout(function(){window.close(lol);window.open('http://col.com')},105000);
}
</script>
答案 1 :(得分:0)
您可以使用字符串数组来存储所有链接,然后在30秒后遍历该循环调用open和close。使用循环和抽象打开/关闭可以让您拥有任意数量的链接。
var linkArray = ['http://www.wol.com', 'http://www.bol.com', 'http://lol.com', ['http://col.com']
function openWin(link) {
var currentWindow = window.open(link);
setTimeout(currentWindow.close(), 30000);
}
function runLinks() {
for(var i = 0; i< linkArray.length; i++) {
openWin(linkArray[i]);
}
}
答案 2 :(得分:0)
这是一个用于调用URL的小间隔循环。随意为不同的URL添加数组。
<script type="text/javascript">
var lastWindow = "";
setInterval(function(){
if(lastWindow != ""){ lastWindow.close(); }
lastWindow = window.open("url");
}, 30000);
</script>