从 iframe 访问 Firefox 扩展程序
Posted
技术标签:
【中文标题】从 iframe 访问 Firefox 扩展程序【英文标题】:Firefox extension access from iframe 【发布时间】:2014-02-07 20:40:34 【问题描述】:我的扩展中有一个 iframe,代码如下:
<html:iframe src="http://link.com/" id="iFrame" flex="1" type="content" />
在我的 main.js 中有一个变量:
var myVarExt='Good!';
但是当我尝试使用代码从 iframe 访问它时:
alert(parent.myVarExt);
在浏览器控制台中出现错误:
Error: Permission denied to access property 'myVarExt'
我该如何解决?
【问题讨论】:
【参考方案1】:您不能这样做,因为它会破坏安全模型。在 IFrame 中加载的网页的权限低于扩展本身。请记住,您的扩展程序可以访问用户的文件系统并可以读取或删除文件,想象一下任意网页是否可以向您的扩展程序对象添加方法,然后调用它们。
内容码和扩展码的通信请参考Interaction between privileged and non-privileged pages。
您使用自定义 DOM 事件在网页和扩展程序之间发送数据。
【讨论】:
也许有办法将一些链接/域加入白名单?我了解如何使用事件侦听器完成整个事情,但只有在没有其他方法的情况下才想重写整个事情...... 没有办法为此目的将域添加到白名单。如果您打算通过不安全的http://
链接加载这些域,这是一件好事!以上是关于从 iframe 访问 Firefox 扩展程序的主要内容,如果未能解决你的问题,请参考以下文章