【问题标题】:Chrome extension - How to pass a variable to new tab?Chrome 扩展 - 如何将变量传递给新标签?
【发布时间】:2018-12-05 23:38:03
【问题描述】:

我的后台页面将有关当前活动标签的数据保存到chrome.storage.local。为了争论,让我们说它是页面标题。如果用户打开了多个选项卡,则会出现多个页面标题。

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

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

我肯定遗漏了一些基本的东西,但是showthedata.html 如何显示与活动标签相关的数据?

【问题讨论】:

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

标签: google-chrome-extension


【解决方案1】:

如果您使用扩展程序的 URI 作为新标签页的 URL,它将允许您在新标签页中使用 API 的消息传递和存储系统。

创建新标签

chrome.tabs.create({url: "chrome-extension://<your_extension_id>/path/to/file.html"})

设置完成后,您可以通过 Chrome API 消息系统或存储系统将变量传递到新标签或从新标签中请求变量(前提是您已在扩展程序的各个部分中构建了适当的功能)。

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

【讨论】:

    猜你喜欢
    • 2012-04-16
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多