使内容可在 Addon SDK 上访问

2023-12-28

我正在使用 Firefox 的 Addon SDK(v. 1.11)开发一个插件。我的扩展在每个网站上动态创建一个 iframe,然后加载一个 html 文件,其中包括来自附加组件本地目录的其他资源,例如图像、字体文件等。

Problem

加载任何此类本地资源时(即:“资源://" schema),iframe 无法显示它们并抛出一条消息:

安全错误:http://www.XXX 上的内容可能无法加载或链接到 资源://XXX

这是一项安全措施在 Firefox 3 上引入 https://developer.mozilla.org/en-US/docs/Chrome_Registration#contentaccessible。在不使用 Addon SDK 进行开发时,解决方法是使用“contentaccessible=yes”声明一个目录,使任何人都可以访问该目录的内容,包括我的附加组件。但是,我无法使用 Addon SDK 找到类似的功能。有没有更好的方法可以在我的插件创建并插入页面的 iframe 上使用本地数据?


我认为您不能直接加载指向 URL 内资源的 iFrame。浏览器会抱怨,因为它要么违反了同源策略,要么违反了跨站点脚本策略。我现在不记得是哪一个了。

如果您要加载的是 html 内容,您始终可以将其注入 DOM,然后使用事件 API 向文档对象发送消息以显示您的自定义 html。我过去曾这样做过并且有效。

因此,从 main.js 向内容脚本发送一条消息,然后该脚本会将您的 iframe html 注入到 DOM 中,然后您可以向文档对象发送一条消息来显示它。

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使内容可在 Addon SDK 上访问 的相关文章

随机推荐