我想在JavaScript或jQuery的新瀏覽器選項卡中打開一個URL。如果它已被打開,則選中該選項卡。在新標籤頁中打開一個URL
我用這個函數打開。
function OpenInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
如果該選項卡已打開,該怎麼辦?
我想在JavaScript或jQuery的新瀏覽器選項卡中打開一個URL。如果它已被打開,則選中該選項卡。在新標籤頁中打開一個URL
我用這個函數打開。
function OpenInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
如果該選項卡已打開,該怎麼辦?
在這裏看到:
How to change browser focus from one tab to another
,並在這裏:
Detect If Browser Tab Has Focus
這兩者都是以前的堆棧溢出的職位。
這是可能的,知道什麼時候你的標籤,而當用戶移動遠離它(使用新的網頁瀏覽權限API)
但它無法切換到使用javascript另一個選項卡上。
然而,你可能(我非常懷疑適用於你的情況)爲你的操作系統編寫一個外部程序,可以與瀏覽器應用程序進行通信並以此方式進行切換,但直接從網頁中,它是非啓動器和巨大的安全風險。
在一般情況下,由於安全目的,腳本無法從瀏覽器獲取有關打開頁面的信息。
也許它可以是一把每次存儲從當前頁面加載所有鏈接到子頁面,並檢查使用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
}
}
好吧,我錯了。我寫這個例子來解釋:http://jsfiddle.net/wc70ef29/ – CodeColorist 2014-10-04 13:49:52
記住,你已經打開的窗口陣列之前。在OpenInNewTab上檢查數組以查看是否存在URL的窗口,如果有焦點,則打開窗口並推入數組。 – artm 2014-10-04 12:03:18
感謝您的提示。 – Farhad 2014-10-04 12:05:26
有沒有原因爲什麼這不能作爲一個簡單的目標=「_ blank」錨定標記? – 2014-10-04 12:06:59