Открыть несколько URL-адресов в той же новой вкладке JavaScript - PullRequest
1 голос
/ 01 апреля 2019

Я пишу 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 ]

1 голос
/ 01 апреля 2019

Когда вы открываете, используя метод window.open, он вернет объект окна вновь открытой вкладки, используйте его для обновления URL через 10 секунд. Для обеспечения задержки используйте метод 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)
0 голосов
/ 01 апреля 2019

Я не знаю, почему вы хотите это сделать.Не. Это очень раздражает. Но если вам нужно, следующее работает и было проверено в хром (и только в хром)

параиз вещей, чтобы отметить:

  1. Это не обойдет блокировку всплывающих окон.Пользователи должны разрешить это .
  2. Технически это не использует вкладку " same ".Старый закрывается, а новый открывается достаточно быстро, пользователь не заметит.

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)
0 голосов
/ 01 апреля 2019

это пример кода.

    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));
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...