主要是想实现如下功能:
- 开发一个Chorme插件,修改window的属性,比如添加一个
window.foo=bar
,然后JS和控制台就可以访问window.foo
- 插件通过
chrome.runtime.onMessage.addListener
创建一个监听器,接收消息的,可以通过JS或者控制台向这个监听器发送消息,并且可以得到回应
我现在可以实现下面的消息链:
custom.js --> content-script.js <--> background.js
现在遇到的问题是content-script.js
接收到了background.js
返回的消息,但是不知道怎么把消息返回给custom.js
,还望大佬们指点下
content.js 和 custom 处于不同沙箱,不能访问对方的
window
。不过它们共享 DOM,所以最简单的办法,直接通过document.body.dispatchEvent()
把你的消息发送出去就好。如果你的需求比较复杂,可以在 custom.js 里使用
chrome.runtime.connect()
,将网页连接到插件的 background.js,然后使用chrome.runtime.sendMessage()
通讯。