切换到镀铬扩展页面没有选项卡权限

时间:2012-06-21 18:12:21

标签: google-chrome-extension

我正在编写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。

2 个答案:

答案 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()。但我建议反对,因为它更像是一个黑客,而且实际上没有保证这个功能在构建之间保持稳定。