google-chrome-extension - 以在后台脚本中完成的方式从内容脚本调用 chrome.browserAction.setIcon

标签 google-chrome-extension

我正在为 chrome 做一个扩展。它从网页中获取数据并通过本地电子邮件客户端通过电子邮件发送。我有一个工具栏按钮,用户必须单击该按钮才能调用脚本。

我的脚本适用于一些选定的 url。我希望我的工具栏按钮根据 url 是否在我们的列表中来更改图标。例如,对于 site1,它应该是 redicon.png,而对于 site2,它应该是 blueicon.png。我可以使用 chrome.browserAction.setIcon 更改按钮图标。但问题是这个 API 在内容脚本中不起作用。它在 background.js 文件中工作正常,但在 content.js 中不工作。请告诉我如何实现这一目标。

我知道改用 pageAction 可以解决问题,但我的客户要求工具栏图标应该更改而不是出现和消失。

最佳答案

您需要阅读的是 message passing .你是对的,内容脚本具有有限的 chrome API。但是,您可以从内容脚本联系后台页面并告诉它为您执行来自 chrome API 的任何内容。首先,您需要创建一个 listener在将等待消息的后台页面上,然后 send a message来自内容脚本。

关于google-chrome-extension - 以在后台脚本中完成的方式从内容脚本调用 chrome.browserAction.setIcon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155009/

相关文章:

javascript - 为什么会保存sendMessage的内容以及如何禁用它?

javascript - 内容脚本未注入(inject)选项页面

javascript - 仅在站点的子目录中加载内容脚本

google-chrome - 限制对Chrome扩展程序的访问

javascript - Chrome扩展程序内容脚本: click() and async results

javascript - 我怎样才能通过在 react,chrome 扩展中按下按钮来重定向到另一个组件?

html - 创建 Chrome 扩展以隐藏 DIV 显示 :none; on a specific page

jquery - 谷歌浏览器扩展 - 弹出页面未正确显示

javascript - Do/While XMLHttpRequest 将所有调用的结果添加到一个数组

javascript - 将数据从 Chrome 扩展发送到本地 python 文件