2016-09-17 42 views
0

的情況是:如何在Chrome擴展程序中查詢之前查詢的已知標籤ID的更改網址?

我查詢的選項卡,並瞭解活動標籤的ID爲:

chrome.tabs.query({active: true, currentWindow: true}, function(arrayOfTabs) { 

    activeTab = arrayOfTabs[0]; 
    tabId = activeTab.id; 
    ... 
} 

,並注入了一些內容腳本:

chrome.tabs.executeScript(tabId, {file: "content.js"}); 

可能的網址變更爲新的位置。

有線的是activeTab.url的返回值保持不變。

那麼有什麼辦法可以得到知道標籤ID的新網址。或者我必須再次查詢選項卡並找到哪個選項卡與已知的ID相匹配(當前活動選項卡可能不是上一個),獲取新的url?

非常感謝!

回答

2
  1. 的標籤陣列參數僅僅是回調的緣故創建的臨時副本,所以activeTab.url是標籤的URL的副本,這不是自刷新指向當前選項卡。
  2. 使用chrome.tabs.get

    chrome.tabs.get(tabId, function(tab) { 
        if (chrome.runtime.lastError) { 
         console.log('Tab %d was not found', tabId); 
         return; 
        } 
        console.log('Async callback got tab %d URL: %s', tabId, tab.url); 
    }); 
    

    你需要在"permissions""tabs"
    "activeTab"如果這是一個活動選項卡,並且您的擴展是通過用戶手勢調用的。

相關問題