将消息从Chrome扩展程序传递到网页
我需要在Chrome扩展程序中传递消息(引发活动),并在网页上对JavaScript做出反应。
在扩展的content_script.js
中,应该有一个类似的函数
raiseXYZevent(data);
网页http://foo.com/mypage.html
上的JavaScript应该执行处理程序
function processXYZevent(data) { ... }
问题是扩展中的内容脚本无法直接与网页上的JavaScript交互(它只能修改DOM)。 有没有办法从扩展中进行DOM更改,以某种方式从网页中检测它们并调用processXYZevent
?
由于内容脚本和网页共享相同的DOM,因此您可以使用postMessage
在它们之间发送消息。 Chrome API文档通过示例详细说明了这一点。