2012-06-13 142 views
5

當前網頁的網址我想從我的default_popup頁面獲取當前頁面的網址是這樣的:獲取Chrome擴展

chrome.tabs.query({active:true},function(tab){ 
    url = tab.url; 
}); 

而且我已經在manifest.json文件中註冊該popup.html頁。然而 我收到錯誤消息:

Uncaught Type Error: Cannot call method 'query' of undefined

我在做什麼錯?

+0

的錯誤你得到意味着該函數'query'沒有了'chrome.tabs'對象上存在。您調用此函數的擴展部分是否具有訪問此函數的權限?你的擴展是否有*選項卡*特權? – user2428118

+0

是的,我的擴展名有標籤特權,我在popup.html頁面內使用上面的chrome.tabs.query()方法,該頁面在manifest.json文件中的browser_action:field中註冊爲default_popup。 –

回答

1

回調參數應指定一個函數,它看起來像這樣:

function(array of Tab result){...} 

也許你應該寫這樣的

url = tab[0].url; 
+1

謝謝... tab [0]的作品,但我想問在給定的查詢active:true其他標籤數組包含意味着tab [1],tab [2] ...將保持什麼值? –

2

其實錯誤

Uncaught Type Error: Cannot call method 'query' of undefined 

是因爲我單獨運行popup.html頁面(與擴展分開)意味着我明確地打開了popup.htm l頁面在瀏覽器中找到錯誤,但我忘了popup.html可以使用chrome api如果它是一個擴展頁面,並且我的擴展沒有顯示url,因爲我使用的是tab.url而不是tab [0] .url,所以Tom建議right ans。