Chrome扩展:在内容脚本和网页之间进行通信'的脚本
Chrome extension:Communicate between content script and webpage's script
我的内容脚本中有以下代码,它正在调用网页的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无法调用任何函数或访问内容脚本定义的任何变量。
更多信息内容脚本执行环境
相关文章:
- Firefox插件SDK:在侧边栏和主脚本之间通信对象
- 歌剧扩展脚本和它们之间的通信
- Chrome扩展:内容脚本和background.html之间的通信
- 一个用户脚本的两个实例如何在帧之间进行通信
- Chrome扩展:在内容脚本和网页之间进行通信'的脚本
- Chrome扩展:在后台页面和网站页面脚本之间进行通信的最佳方法
- 如何在内容脚本和面板之间进行通信
- 应用程序与 Web 视图中注入的脚本之间的通信
- js 脚本(ajax) - PHP |多变量通信
- 从外部脚本与angularjs模型进行通信
- Chrome DevTools和扩展中的内容脚本之间的通信
- chrome扩展的浏览器操作、后台脚本和内容脚本之间通信的上下文和方法
- 从注入脚本到带有响应的内容脚本的通信
- 内容脚本(页面mod)和弹出(面板)之间的通信
- Firefox插件sdk - self中脚本之间的通信.端口不存在
- Chrome扩展通信(内容脚本)
- 在Chrome扩展脚本之间的通信
- 如何在后台脚本和页面(弹出)脚本之间进行通信
- 使用ajax与现有节点脚本通信
- 在内容脚本和选项页面之间进行通信