Chrome标签页扩展:getCurrent与getSelected的区别?

7

我正在编写一个Chrome扩展程序。作为扩展程序的一部分,我希望获取调用该扩展程序的标签页的URL。使用以下哪种方式有何区别:

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

并且

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

?

3个回答

21

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

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


16

getCurrent 应该是你需要的,getSelected 是当前在浏览器中选定的标签页。它们可能不同 - 也许你的扩展程序在标签页中运行了一些后台 cronjob,所以该标签页可能不是用户当前选定的。

好吧,显然我完全搞错了。 getCurrent 只应在与其关联的选项卡上使用(例如 options.html),不能从背景页或弹出页中使用。 getSelected 是当前在浏览器中选定的标签页。

至于您最初的问题-您可能两者都不需要。如果您正在将请求从内容脚本发送到后台页面,则此请求正在传递作为一个 sender 参数的标签页。


3
现在这个答案已经过时了,请查看下面的内容。 - temporary_user_name

4

如果您正在寻找chrome.tabs.getSelected的替代方案,可以参考chrome.tabs.query的工作示例:

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

1
只是想说它是tabs[0].url(而不是tab)。 - Mustapha GANGA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接