【发布时间】:2018-03-26 16:03:19
【问题描述】:
有一些类似的问题,但它们都归结为 chrome.tabs.getSelected 或 chrome.tabs.query API,这不适合我的情况。
基本上我需要做的是获取运行脚本的选项卡的id - 所以它不一定是活动或选定的选项卡。
根据the doc:
getCurrent chrome.tabs.getCurrent(函数回调)
获取执行此脚本调用的选项卡。或许 如果从非选项卡上下文(例如:背景)调用,则未定义 页面或弹出视图)。
这意味着它应该在内容脚本中工作,但 chrome.tabs 在内容脚本中未定义。为什么会这样?有什么方法可以知道this 选项卡数据(从运行内容脚本的位置而不是从选定或活动选项卡)?
尽管文档说 tabs 权限对于大多数 API 来说不是强制性的,但我还是没有运气地将其添加到清单中:
{
"manifest_version": 2,
"name": ...
"permissions": [
...
"tabs",
...
}
非常感谢任何想法
get current/this tab 的用例是,当扩展程序完成其工作时,它需要重新加载作为工作流程的一部分运行它的页面,并且用户可以在不同的选项卡或不同的窗口中。扩展程序的脚本仍然需要获取正确的 tabId 才能继续按预期工作。
【问题讨论】:
-
您不能在内容脚本中使用
chrome.tabs。只允许使用 4 个 chrome API(在docs 中列出)。 -
@wOxxOm 谢谢 - 那么 getCurrent api 的用例是什么?如果从后台运行(这很明显),它会返回未定义的选项卡,但在脚本中它不可用。这个方法对我来说看起来很奇怪
标签: javascript google-chrome-extension