我想在新的浏览器标签中使用JavaScript或jQuery打开一个URL。如果它已经打开,则选中该选项卡。
我使用此功能打开。
function OpenInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
如果标签已经打开,我该怎么办?
答案 0 :(得分:0)
见这里:
How to change browser focus from one tab to another
和这里:
Detect If Browser Tab Has Focus
这两个都是之前的堆栈溢出帖子。
可以知道您在选项卡上的时间以及用户何时离开它(使用新的页面可见性API)
但是无法使用javascript切换到另一个标签页。
然而,你可以(我非常怀疑你的情况适用)为你的操作系统编写一个外部程序,它可以与浏览器应用程序通信并以这种方式切换,但是直接从网页上,它是一个“sa”。非首发和巨大的安全风险。
答案 1 :(得分:0)
一般情况下,由于安全目的,脚本无法从浏览器获取有关已打开页面的信息。
也许将所有链接存储到当前页面加载的子页面并在每次使用window.open
之前检查
var openedPages = []
function openUrl(url)
{
if (!isWindowActive(url))
{
var win = window.open(url, '_blank')
// also it's good to prevent duplicate url's, but I omit that stuff for simplicity
openedPages.push({ 'url': url, 'win' : win })
}
}
function isWindowActive(url)
{
for(var i = 0; i < openedPages.length; ++i)
{
var page = openedPages[i]
if (page.url === url)
{
return !page.win.closed
}
return false
}
}