chrome.tabs.query
支持從後臺頁面,當然只要你有tabs
權限。這是支持的路線爲Chrome瀏覽器19
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
var tab = tabs[0];
var url = tab.url;
});
注意,因爲它會否則返回活動選項卡每窗口currentWindow
需要的。這應該保證只返回一個選項卡。
當然,請記住,這是一個異步API--除了在回調函數中,您不能訪問它提供的任何數據。您可以將值(例如url
)存儲在更高的範圍內,以便其他函數可以訪問它,但在執行回調後仍然會提供正確的結果。
(下面是我原來的答覆一直爲後人 - 這個方法是不再需要,需要經常運行的後臺頁面,getSelected()
已過時)
首先把這個背景.html和使myURL可變全球:
var myURL = "about:blank"; // A default url just in case below code doesn't work
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { // onUpdated should fire when the selected tab is changed or a link is clicked
chrome.tabs.getSelected(null, function(tab) {
myURL = tab.url;
});
});
然後在popup.html運行時您希望得到的頁面網址:
chrome.extension.getBackgroundPage().myURL;
因此,如果我要讓它出現在彈出窗口中,並且我去Google並點擊了您的頁面或瀏覽器操作,我會在彈出窗口中看到http://google.com/webhp
。
謝謝!完美的作品。 – Calvin