在同一新标签页中打开多个网址

时间:2019-04-01 14:35:08

标签: javascript google-chrome url tabs

我在同一标签上写了一个javascript打开多个URL。我知道如何在新标签页中打开链接。

window.open(your_url,"_blank")

但是,我的客户希望我只打开一个带有多个URL的标签。 假设您有一个javascript

var urlList=['https://www.google.com', 'www.youtube.com']

我想在间隔为10秒的同一新选项卡上依次打开。 首先,我

window.open(urlList[0],"_blank")

但是,如果我仍然在第二个操作中这样做,它将打开另一个新选项卡,而不是在旧选项卡上。有谁知道如何指定打开的标签页?

3 个答案:

答案 0 :(得分:1)

使用window.open方法打开时,它将返回新打开的选项卡的window对象,并在10秒后使用它来更新URL。要提供延迟,请使用setInterval方法。

// website lists
const urlList = ['https://www.google.com', 'http://www.youtube.com']

// open the first url and cache the window object reference
const win = window.open(urlList[0], "_blank")

// variable for keeping track of array position(urls)
let i = 1;

// create interval with 10seconds delay and keep 
// interval reference to clear the event in future
let int = setInterval(() => {
  // update the location with next array value
  win.location = urlList[i];
  // check value of i and increment, if reached the max value then clear the interval
  if (i++ >= urlList.length) clearInterval(int)
}, 10000)

答案 1 :(得分:0)

这是示例代码。

    async function navigate() {
 var _window = window.open("","_blank")
 var urlList=['https://www.google.com', 'https://www.youtube.com'];   
 for (var url of urlList) {     
    _window.location.replace(url);
    await sleep(10000);
 }   
}

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

希望对您有帮助。

答案 2 :(得分:0)

我不知道你为什么要这么做。别。 这很烦人。 但是,如果您必须这样做,以下方法可以工作并且已经在chrome中进行了测试(在chrome中仅

需要注意的几件事:

  1. 这不会绕过弹出窗口阻止程序。用户必须允许
  2. 从技术上讲,这不使用“ 相同”标签。旧的已关闭,新的已足够快地打开,用户不会注意到。

var myWindow;

let urls = ["https://stackoverflow.com", "https://stackexchange.com/"];
let counter = 0;
let openWindow;

function openWin(url) {
    openWindow = window.open(url, "_blank");
}

function closeWin(){
    openWindow.close();
}

setInterval(function(){
    if(openWindow) closeWin();
    openWin(urls[counter]);
    counter++;
}, 10000)