2014-04-01 41 views
2

我的Chrome擴展程序有一個帶有幾個鏈接的彈出窗口,如果它是新標籤頁,我希望在當前標籤頁中打開它,否則打​​開新標籤頁。所以我相信我需要知道活動標籤的URL。或者有另一種方法來識別新標籤?如何知道我的Chrome擴展程序是否從新標籤頁調用?

我想使用「activeTab」權限而不是「選項卡」 - 我希望用戶儘可能少地查看權限。

我發現識別標籤的URL的唯一方法是使用一個背景頁和

chrome.browserAction.onClicked.addListener(function(tab)) 

但是,這並不具有在清單中定義一個彈出兼容。我可以以編程方式設置彈出頁面,但我看不到使彈出窗口出現的方法。有沒有辦法做到這一點?

當我default_popup在清單中定義我用

document.addEventListener('DOMContentLoaded', function()) 

推出相關的代碼,所以要激活的標籤沒有引用。是否有另一種方式來運行代碼或獲取活動選項卡?

謝謝。

回答

2

activeTab權限允許您「通過返回tabs.Tab對象的API獲取該選項卡的URL,標題和圖標。因此,要從彈出窗口中獲取當前標籤網址,您可以執行以下操作:

chrome.tabs.query({active:true, currentWindow: true}, function(tabs) { 
    currentUrl = tabs[0].url; 
}); 
+0

多麼令人沮喪!幾小時前我有類似的代碼,但我使用控制檯查看URL,並將其報告爲「未定義」。當我將URL字符串注入彈出頁面時,它總是顯示您期望的內容。只有當我添加控制檯報告正確URL的「選項卡」權限!謝謝你的幫助。 – Pudica

相關問題