2010-12-22 62 views
9

因此,在大多數當前瀏覽器中都有Tabs功能,是否有一種方法可以獲取Tab索引?獲取瀏覽器選項卡索引/ Id

因此Tab 1已經打開了www.google.com並且Tab 2已經打開了www.google.com,有沒有一種方法可以確定Tab索引是什麼?

僞代碼:

if($tab == 2) { 
    alert "Tab 2 is active\n"; 
} 

if($tab == 1) { 
    alert "Please use Tab 2 as this is Tab 1\n"; 
} 

有趣,因爲一切我搜索有關標籤的相關網頁本身的選項卡索引,嘆息......

+0

會是一個什麼情況下使用這些信息(瀏覽器之外的附加元件)? – Boldewyn 2010-12-22 15:04:09

+0

這是更多的問題,可以這樣做然後用例。我被問到這個問題,沒有看到有關這個問題的任何內容,讓我想到它是否可以完成。在服務器端,我不認爲我可以識別單個選項卡,因爲每個選項卡都被視爲頁面加載請求,但我認爲JavaScript可能能夠在瀏覽器上訪問此信息。 – 2010-12-22 15:09:12

+1

就個人而言,如果我進入一個網站和一個彈出窗口或其他顯示「你有選項卡1有效」或任何相同類型的東西。我會切換瀏覽器,直到這些東西被修復,並抵制我正在使用的網站。 :D – Dan 2010-12-22 15:12:02

回答

6

嚴格來講, TABS在最終用戶的機器上。 PHP在服務器上工作。 PHP無法看到最終用戶的機器在做什麼,它只能用服務最終用戶的PHP頁面。

Google會通過JavaScript和Cookies來執行此操作。對於打開的每個頁面實例,增加一個cookie計數器。如果計數器> 1,則使用AJAX顯示錯誤消息。此外,如果禁用了Cookie或JavaScript,則禁止頁面正常工作。

調查jQuery。

0

在PHP中:絕對不會 - 它在執行您的服務器無法訪問Cleints瀏覽器。

也許有一個使用JavaScript的解決方案(但我從來沒有聽說過,我敢肯定,這是不可能的 - 至少不作爲跨瀏覽器的解決方案)。

我認爲你將擁有的最好機會(如果有的話)使用其他客戶端語言,如flash,silverlight或java插件,因爲這些可以做的比javascript更多 - 但是,對不起,我不知道任何這些足以提供更多信息或提示。

0

至於確定絕對標籤索引,我知道沒有辦法用Javascript來做到這一點。你可以通過他們的名字來識別窗口,但沒有其他的東西。

在您的兩個包含相同網頁的選項卡的示例中,您應該能夠通過使其相互認識來唯一標識它們。你需要爲此使用cookies。實際上,當一個頁面被加載時,它會檢查一個cookie,告訴它關於當前加載的頁面的其他實例,並據此作出決定。

在這種情況下,您的onload處理程序將檢查cookie並註冊加載頁面。您還需要一個onunload處理程序來取消關於正在卸載的頁面的cookie。

請參閱Javascript communication between browser tabs/windows關於如何使用cookie在使用Javascript的窗口之間進行通信的更多信息。

0

不要浪費任何時間在這個伴侶上。這是不可能的,主要是因爲安全限制,瀏覽器內的任何網頁都無法獲得這種信息。

嘗試尋找替代方法,因爲其他人在其評論中提出了一些建議。

0

我確定沒有支持該信息的全局變量。但也許聰明的瀏覽器如Firefox或谷歌瀏覽器可能會支持它。我在網上做了一個快速搜索,然後我帶着這些。

首先,檢查Mozilla Tab Helper可以使用Mozilla。但請記住,這絕不會是一個跨瀏覽器解決方案。另外,我認爲沒有跨瀏覽器解決方案。

第二個是,如果你想使用這個爲你自己使用,那麼它可能會有用,我不測試它。這是一個插件。這裏是Open Tab Count Mozilla Addon

Open Tab Preview

相關問題