调用chrome.browserAction.onClicked上的Content Script函数
Calling Content Script function on chrome.browserAction.onClicked
我的问题很简单,我只想找出最简单的方法。
我的chrome扩展的当前迭代通过一个按钮将DIV注入到网页中,当按下按钮时,它将执行一个函数。
我想在不注入DIV的情况下做到这一点,当按下工具栏中的浏览器按钮时,在我的一个内容脚本中执行一个函数。最简单的方法是什么?我认为我必须使用后台页面,并且我在文档中看到的唯一一件事就是在两端注册一些侦听事件。如果这是唯一/最简单的方法,我该怎么做?
是的,通过浏览器或页面操作按钮联系内容脚本是使用后台脚本和内容脚本之间来回发送的消息完成的
第一步:告诉后台脚本在浏览器上做什么操作/page操作按钮单击
chrome.browserAction.onClicked.addListener(function(tab) {
...
});
步骤2:在browserAction.onClicked
事件侦听器中,您可以向内容脚本发送消息(实际上是向任何正在侦听的代码发送消息!):
chrome.tabs.sendMessage(tab.id, {<YOURMESSAGEPAYLOAD>});
步骤3:在内容脚本中,为传入消息添加一个侦听器
chrome.runtime.onMessage.addListener(function(request, sender, callback) {
// request contains the YOURMESSAGEPAYLOAD sent above as a Javascript object literal
});
您也可以反过来,通过在内容脚本中使用以下内容,将消息从内容脚本发送到后台脚本
chrome.runtime.sendMessage({<YOURMESSAGEPAYLOAD>});
然后以与上述相同的方式在后台脚本内使用CCD_ 2监听器。
devnull69是正确的,您需要使用消息传递。还可以考虑检查chromeps。这是我为chrome扩展编写的一个小型pubsub库。删除了编写消息传递代码时的大量开销。
相关文章:
- html文件中的script标记根本不起作用
- 用javascript将script元素附加到头部;铬不能工作
- script标记如何解析node_modules的路径
- @Url.Content(“~”)不适用于localhost
- 节点,express应用程序返回text/javascript响应头(Content-Type),尽管设置了applic
- 在<script src=“"></脚本>标签
- Google Script HtmlService,通过多个选项卡复制URL变量
- 为什么firefox开发人员控制台引用script.js
- 等效于<script src=“;something1.json”></脚本>
- If Else Java Script HTML
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- 是否在Script Src标记中包含Script<脚本>(JavaScript等)
- Java Script将对象方法映射到数组中的对象
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- Content Script 无法访问 Chrome.tabs.*,即使在添加外部 JS 文件后也是如此
- Google Apps Script 的 Content Service 返回 HTML 而不是 JSON
- How can I get json content in <script src="url.json&
- 调用chrome.browserAction.onClicked上的Content Script函数
- 仅当设置了首选项时才在content-script中加载jQuery
- background.js和content-script之间的通信?响应是UNDEFINED