我正在编写一个Chrome扩展程序。作为扩展程序的一部分,我希望获取调用该扩展程序的标签页的URL。使用以下哪种方式有何区别:
chrome.tabs.getSelected(null, function(tab) { var myTabUrl = tab.url; });
并且
chrome.tabs.getCurrent(function(tab) { var myTabUrl = tab.url; });
?
我正在编写一个Chrome扩展程序。作为扩展程序的一部分,我希望获取调用该扩展程序的标签页的URL。使用以下哪种方式有何区别:
chrome.tabs.getSelected(null, function(tab) { var myTabUrl = tab.url; });
并且
chrome.tabs.getCurrent(function(tab) { var myTabUrl = tab.url; });
?
方法 chrome.tabs.getSelected
已被废弃。现在应使用 chrome.tabs.query
。
您无法找到废弃方法 chrome.tabs.getSelected
的官方文档。这是方法 chrome.tabs.query
的文档。
getCurrent
应该是你需要的,getSelected
是当前在浏览器中选定的标签页。它们可能不同 - 也许你的扩展程序在标签页中运行了一些后台 cronjob,所以该标签页可能不是用户当前选定的。
好吧,显然我完全搞错了。 getCurrent
只应在与其关联的选项卡上使用(例如 options.html),不能从背景页或弹出页中使用。 getSelected
是当前在浏览器中选定的标签页。
至于您最初的问题-您可能两者都不需要。如果您正在将请求从内容脚本发送到后台页面,则此请求正在传递作为一个 sender
参数的标签页。
如果您正在寻找chrome.tabs.getSelected
的替代方案,可以参考chrome.tabs.query
的工作示例:
chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function (tabs) {
var myTabUrl = tabs[0].url;
});