时间:2011-01-06 19:56:16

标签: google-chrome-extension

我正在撰写Chrome扩展程序。作为扩展的一部分,我想获取调用扩展名的选项卡的URL。使用之间有什么区别:

chrome.tabs.getSelected(null, function(tab) { var myTabUrl = tab.url; });

chrome.tabs.getCurrent(function(tab) { var myTabUrl = tab.url; });

3 个答案:

答案 0 :(得分:20)

方法chrome.tabs.getSelected已被弃用。您现在应该使用chrome.tabs.query

您无法找到过时方法chrome.tabs.getSelected的官方文档。这是方法chrome.tabs.query的文档。

答案 1 :(得分:15)

getCurrent应该是您所需要的,getSelected是当前在浏览器中选中的标签。如果它们可能不同 - 也许您的扩展程序会在标签中运行一些背景cronjob,以便用户当前无法选择该标签。

好吧,我显然错了。 getCurrent只能在扩展程序自己的页面中使用,这些页面具有与之关联的选项卡(例如options.html),您不能在后台或弹出页面中使用它。 getSelected是当前在浏览器中选中的标签。

关于你原来的问题 - 你可能不需要这两个问题。如果要将内容脚本中的请求发送到后台页面,则发出此请求的选项卡将作为sender参数传递。

答案 2 :(得分:0)

对于那些正在寻找chrome.tabs.query而不是不推荐使用的chrome.tabs.getSelected实例的人:

chrome.tabs.query({
    active: true,
    lastFocusedWindow: true
}, function (tabs) {
    var myTabUrl = tab[0].url;
});