Google chrome extension Chrome扩展-如何将变量传递到新选项卡?

Google chrome extension Chrome扩展-如何将变量传递到新选项卡?,google-chrome-extension,Google Chrome Extension,“我的背景”页面将有关当前活动选项卡的数据保存到chrome.storage.local。为了便于讨论,让我们假设它是页面标题。如果用户打开多个选项卡,则其中将包含多个页面标题 单击浏览器操作按钮时,我想打开一个新选项卡,其中包含我的内部扩展页showthedata.html(不是外部URL),该页将显示为活动选项卡保存的数据 理想情况下,我希望打开showthedata.html?tabID=123,然后提取相应的数据 我肯定缺少一些基本的东西,但是showthedata.html如何显示与活

“我的背景”页面将有关当前活动选项卡的数据保存到
chrome.storage.local
。为了便于讨论,让我们假设它是页面标题。如果用户打开多个选项卡,则其中将包含多个页面标题

单击浏览器操作按钮时,我想打开一个新选项卡,其中包含我的内部扩展页
showthedata.html
(不是外部URL),该页将显示为活动选项卡保存的数据

理想情况下,我希望打开
showthedata.html?tabID=123
,然后提取相应的数据


我肯定缺少一些基本的东西,但是
showthedata.html
如何显示与活动选项卡相关的数据呢?

如果您使用扩展的URI作为新选项卡的URL,它将允许您从新选项卡使用API的消息和存储系统

创建新选项卡

chrome.tabs.create({url: "chrome-extension://<your_extension_id>/path/to/file.html"})
chrome.tabs.create({url:chrome-extension:///path/to/file.html"})
设置完成后,您可以通过Chrome API消息传递系统或存储系统向新选项卡传递变量或从新选项卡请求变量(前提是您已将适当的功能构建到扩展的各个部分中)


注意:chrome.tabs命名空间无法从chrome选项卡中访问。必须从后台脚本或弹出窗口调用它。

如果您使用扩展的URI作为新选项卡的URL,它将允许您从新选项卡使用API的消息和存储系统

创建新选项卡

chrome.tabs.create({url: "chrome-extension://<your_extension_id>/path/to/file.html"})
chrome.tabs.create({url:chrome-extension:///path/to/file.html"})
设置完成后,您可以通过Chrome API消息传递系统或存储系统向新选项卡传递变量或从新选项卡请求变量(前提是您已将适当的功能构建到扩展的各个部分中)


注意:chrome.tabs命名空间无法从chrome选项卡中访问。必须从后台脚本或弹出窗口调用它。

如果在后台脚本中使用chrome.browserAction.onClicked事件而不是在manifest.json中声明默认弹出窗口,则可以使用?tabId URL。在侦听器中,只需使用chrome.tabs.create和URL。有关详细信息,请参阅文档。也可以通过消息传递数据,有很多例子,但最简单的方法可能是将选项卡id保存在chrome.storage.local中。@wOxxOm谢谢。我可能不清楚。我打开的新页面是我的扩展内的页面,而不是外部页面,因此无法使用参数(或can Ii?)。我会更新这个问题来澄清你们知道吗,我的印象是,如果没有服务器端页面,我就无法访问URL中的参数,但事实并非如此。我可以使用showthedata.html上的一些JS来查看参数。我应该删除这个问题还是添加我自己的答案?如果在后台脚本中使用chrome.browserAction.onClicked事件而不是在manifest.json中声明默认的\u弹出窗口,则可以使用?tabId URL。在侦听器中,只需使用chrome.tabs.create和URL。有关详细信息,请参阅文档。也可以通过消息传递数据,有很多例子,但最简单的方法可能是将选项卡id保存在chrome.storage.local中。@wOxxOm谢谢。我可能不清楚。我打开的新页面是我的扩展内的页面,而不是外部页面,因此无法使用参数(或can Ii?)。我会更新这个问题来澄清你们知道吗,我的印象是,如果没有服务器端页面,我就无法访问URL中的参数,但事实并非如此。我可以使用showthedata.html上的一些JS来查看参数。我应该删除问题还是添加我自己的答案,或者两者都不删除?