我在同一标签上写了一个javascript打开多个URL。我知道如何在新标签页中打开链接。
window.open(your_url,"_blank")
但是,我的客户希望我只打开一个带有多个URL的标签。 假设您有一个javascript
var urlList=['https://www.google.com', 'www.youtube.com']
我想在间隔为10秒的同一新选项卡上依次打开。 首先,我
window.open(urlList[0],"_blank")
但是,如果我仍然在第二个操作中这样做,它将打开另一个新选项卡,而不是在旧选项卡上。有谁知道如何指定打开的标签页?
答案 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中仅 )
需要注意的几件事:
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)