Google chrome extension 在没有选项卡权限的情况下切换到chrome扩展页

Google chrome extension 在没有选项卡权限的情况下切换到chrome扩展页,google-chrome-extension,Google Chrome Extension,我正在为chrome编写一个扩展,当用户从弹出窗口输入查询时,它会显示一个结果页面。 我希望后续查询使用现有的结果页,而不是打开新的结果页 我使用chrome.extension.getViews({'type':'tab'})获取当前打开的扩展页面,并将查询传递给打开页面中的javascript函数 我遇到的问题是在不需要“选项卡”许可的情况下切换到该页面 这段代码在后台页面上运行良好 chrome.tabs.getCurrent(function(tab){ chrome.tabs.

我正在为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

/edit>返回的视图对象中获取选项卡id:正如appsilers提到的那样,这不是真正可行的

如果您可以改为使用
chrome.tabs.create()
打开所需的选项卡,那么它也会在创建时返回其选项卡id


否则,唯一的方法就是在目标上下文中放置一个全局变量,并使用
chrome.extension.getViews()
来识别目标并调用焦点窃取函数,如
alert()
。但我建议不要这样做,因为这更像是一种黑客行为,而且无法保证此功能在构建之间保持稳定。

我相当肯定,如果没有
选项卡的许可,这是无法做到的。您已经正确地识别出
chrome.tabs.update
是您需要的功能,但是如果没有
tabs
权限,它只能通过提供
null
tab ID参数来操作当前选择的选项卡。由于您无法在未经许可的情况下在
chrome.tabs.update
中提供选项卡ID,因此无法在选项卡之间切换。

-1错误:ID和
窗口
对象之间没有直接关系。返回(扩展页的)窗口对象的数组。