【问题标题】:How to make a Chrome Extension run code when on a certain url如何在某个 url 上使 Chrome 扩展程序运行代码
【发布时间】:2017-01-05 01:56:09
【问题描述】:

我正在尝试构建一个 Chrome 扩展程序,当用户在某个 url/路径上时,它需要向服务器发送 POST 请求。

我有这部分工作,除了我现在的代码只在我点击 Chrome 扩展程序的图标时运行,我如何让代码在每次访问某个 url 时运行?

我还需要存储在 chrome.storage 中的数据,以便在每次运行的代码中也可以访问

【问题讨论】:

  • 您的代码在内容脚本中吗?内容脚本在网页后台运行。
  • chrome.storage 只能通过后台页面访问。您将需要 sendMessage 到后台页面,然后 sendMessage 回来。我记得有一个通过包含第三个参数(true)解决的问题

标签: javascript google-chrome


【解决方案1】:

答案是使用content script

在清单中指定匹配的 url。

后台页面一直在运行,但内容脚本只注入特定页面(可以指定加载结束前/后)

【讨论】:

  • 当我将它用作内容脚本时,它无法访问 chrome.storage 对象,您对我该怎么做有什么想法吗?
  • 任何安全的事情都在后台页面上完成。如果您在清单中请求该权限,则后台页面可以访问 chrome.storage。您的内容脚本必须 postMessage 或 sendMessage 到后台页面,后台页面访问 chrome.storage,然后后台页面将不安全的数据发送回内容脚本
  • 类似于编写与安全服务器环境交互的 javascript
  • 谢谢!澄清一下,我需要制作两个文件,并通过使用 sendMessage 并将内容脚本代码运行 onMessage 将我需要的数据从后台传递给内容脚本,对吗?
  • 我不久前完成了,但只是为了更新一下他上面所说的效果很好!
猜你喜欢
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 2018-10-08
相关资源
最近更新 更多