2013-01-22 33 views
1

更新的問題:我可以console.log任意數量的選項卡,但沒有選項卡具有url屬性。chrome.tabs.query返回.url爲undefined

argh

原來的問題是解決了:我似乎無法得到這個非常簡單的代碼在background.js工作。我想要訪問標籤,但他們總是以每個標籤的object Object返回。

chrome.tabs.query({}, function(tab){ 
     alert(tab); 
    }); 

objects!

我有我的清單文件選項卡,但即使沒有它不會有所作爲。我個人認爲它不認爲它有權限制表符,但它和我的其他權限,如通知&網址工作正常。謝謝。

+3

'alert'不是一個好的調試工具。它將所有內容轉換爲字符串使用'console.log'。 –

+0

如果我使用console.log,我的控制檯是空的。 編輯:對不起,檢查background.js的控制檯後,它仍然是未定義的。 –

+1

如果您提供了一些查詢信息(例如'{active:true}'),您會得到結果嗎? –

回答

5

chrome.tabs.query實際返回的Tab objects數組(這就是爲什麼你看到[object, Object]嘗試做這樣的事情:。

alert(tab[0].url); 

,看看它是否會顯示你正在期待着什麼

+0

這給了我不確定的,就像標籤[0] .url(因爲chrome.tabs.query給了我一個數組,我認爲這會給我一些東西) –

+0

@Slappybag對不起,將調整我的答案,以反映數組的一部分。你用'tab [0] .url'來定義未定義? – RocketDonkey

+0

是的,我正在使用'tab [0] .url' undefined' –

1

你必須在manifest.json的權限數組中添加「選項卡」,否則你將無法看到選項卡的url。

+0

如果從文檔中複製'permissions'代碼片段並將其粘貼到JSON的末尾,那麼很容易搞砸了,實際上隱藏了您之前的'permissions' ...:s – Mitch

3

在manifest.json中添加選項卡權限編輯刪除並重新添加擴展,以便考慮新的權限。