Chrome扩展:在内容脚本和网页之间进行通信'的脚本

Chrome extension:Communicate between content script and webpage's script

本文关键字:脚本 通信 之间 网页 扩展 Chrome      更新时间:2023-09-26

我的内容脚本中有以下代码,它正在调用网页的javascript 中的一个函数

var actualCode = '(' + function() {
 functionInMyWebPage();
}
+ ')();';
var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

这是有效的,它会触发functionInMyWebPage()函数。

现在我需要得到这个functionInMyWebPage()的返回值,并调用在内容脚本中定义的另一个函数。如果我在上面的脚本块中调用它,它会抱怨,因为它没有定义。

内容脚本在一个称为孤立世界的特殊环境中执行。他们可以访问被注入页面的DOM,但不能访问页面创建的任何JavaScript变量或函数。它查看每个内容脚本,就好像在它运行的页面上没有其他JavaScript执行一样。反过来也是如此:在页面上运行的JavaScript无法调用任何函数或访问内容脚本定义的任何变量。

更多信息内容脚本执行环境