2012-06-13 145 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。