我正在撰写Chrome扩展程序。作为扩展的一部分,我想获取调用扩展名的选项卡的URL。使用之间有什么区别:
chrome.tabs.getSelected(null, function(tab) { var myTabUrl = tab.url; });
和
chrome.tabs.getCurrent(function(tab) { var myTabUrl = tab.url; });
答案 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;
});