在新标签中打开网址

时间:2014-10-04 11:58:11

标签: javascript jquery

我想在新的浏览器标签中使用JavaScript或jQuery打开一个URL。如果它已经打开,则选中该选项卡。

我使用此功能打开。

function OpenInNewTab(url) {
  var win = window.open(url, '_blank');
  win.focus();
}

如果标签已经打开,我该怎么办?

2 个答案:

答案 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
   }
}