使用Javascript:遍历URL的阵列和打开,然后关闭,在定义的时间间隔([removed] I

2019-10-20 03:24发布

我有我需要通过闭环和开在新窗口中的URL的数组。 不过,我需要可以设置每个窗口的打开和关闭之间的超时。 换句话说,窗口只留开了设定的时间间隔,然后转移到阵列中的下一个URL。

下面的代码打开窗户,但只关闭第一个。

        (function X() {
            document.getElementById("target").onclick = function () {

                var urlList = ['http://www.google.com', 'http://www.msn.com', 'http://www.yahoo.com'];
                var wnd;

                for (var i = 0; i < urlList.length; i++) {
                   wnd = window.open(urlList[i], '', '');

                    setTimeout(function () {
                        wnd.close();
                    }, 2000);

                }

            };
            return true;
        }
        )();

想法?

Answer 1:

你的for loop有效地运行,所有的一切在一次,所以你的代码同时打开所有的窗户,然后你的亲密超时所有启动2秒后(在同一时间)。

你需要有数组的每个迭代之间的超时。

这里将是一个办法做到这一点:

var urlList = ['http://www.google.com', 'http://www.msn.com', 'http://www.yahoo.com'];
var wnd;
var curIndex = 0; // a var to hold the current index of the current url

function openWindow(){
    wnd = window.open(urlList[curIndex], '', '');
    setTimeout(function () {
         wnd.close(); //close current window
         curIndex++; //increment the index
         if(curIndex < urlList.length) openWindow(); //open the next window if the array isn't at the end
    }, 2000);
}

openWindow();


文章来源: Javascript: Iterate through array of URLs and open, then close at defined interval