2012-08-11 25 views
8

有沒有辦法檢索所有打開的標籤並將它們分類到Chrome中的數組?因此,如果Gmail和YouTube已打開,則陣列中會有兩個名爲「gmail.com」和「youtube.com」的條目。檢索哪些標籤在Chrome中打開?

回答

9

是的,這裏是你如何能做到這一點:

注:這需要權限「選項卡」在您的清單文件中指定。

chrome.windows.getAll({populate:true}, getAllOpenWindows); 

function getAllOpenWindows(winData) { 

    var tabs = []; 
    for (var i in winData) { 
    if (winData[i].focused === true) { 
     var winTabs = winData[i].tabs; 
     var totTabs = winTabs.length; 
     for (var j=0; j<totTabs;j++) { 
      tabs.push(winTabs[j].url); 
     } 
    } 
    } 
    console.log(tabs); 
} 

在這個例子中,我只是添加標籤的網址,你在一個數組問道但每個「選項卡」對象包含了更多的信息。 Url將是完整的URL,您可以應用一些正則表達式從URL中提取域名。

+1

如何在清單文件中指定「選項卡」權限?我應該在清單文件中寫入什麼來啓用此選項? – 2012-08-23 21:27:52

+0

'chrome.windows'未定義...在這種情況下你做了什麼? – 2016-10-23 12:22:31

3

除非您正在構建插件,否則我不知道要如何檢索打開的選項卡的所有名稱,特別是如果選項卡包含來自不同域的內容。如果你能做到這樣的事情,那可能是一個相當安全的問題!

您可以查看Chrome文檔瀏覽:http://developer.chrome.com/extensions/devguide.html

+0

我正在構建Chrome插件。 – Ray 2012-08-11 15:31:05

+0

這是個壞消息,因爲我試圖將所有標籤從Chrome手動遷移到Firefox(另一個方向很簡單,因爲我可以讓Firefox在Chrome://級別運行任何腳本)。 – lilydjwg 2015-11-22 09:18:39

相關問題