我正在编写chrome的扩展程序,当用户从弹出窗口输入查询时,会显示结果页面。 我希望后续查询使用现有结果页面而不是打开新结果页面。
我使用chrome.extension.getViews({'type':'tab'})
获取当前打开的扩展页面,并将查询传递给打开页面中的javascript函数。
我遇到的问题是切换到该页面而不需要“标签”权限。
这段代码在后台页面中运行良好。
chrome.tabs.getCurrent(function(tab){
chrome.tabs.update(tab.id, {selected: true});
});
但是,tabs.getCurrent需要'tabs'权限。有没有方法可以在没有选项卡权限的情况下执行此操作?
我可以使用chrome.tabs.update
,但我不知道如何从chrome.extension.getViews
返回的视图对象中获取标签ID。
答案 0 :(得分:1)
我很确定如果没有tabs
权限就无法做到这一点。您已正确识别chrome.tabs.update
是您需要的功能,但如果没有tabs
权限,则只能通过提供null
来操作当前选中的标签选项卡ID参数。由于您无法在未经许可的情况下在chrome.tabs.update
中提供标签ID,因此无法在标签之间切换。
答案 1 :(得分:0)
/ edit:正如appilers所提到的,不是真的可行。
如果您可以改为使用chrome.tabs.create()
打开所需的标签页,那么它也会在创建时返回其标签ID。
否则,唯一的方法是在目标上下文中展示全局,并使用chrome.extension.getViews()
来识别目标并调用焦点窃取函数,如alert()
。但我建议反对,因为它更像是一个黑客,而且实际上没有保证这个功能在构建之间保持稳定。