如何访问firefox扩展资源
How can I access firefox extension resources
如何从直接注入页面的javascript代码访问firefox扩展数据?我正在寻找类似manifest.json中web_accessible_resources
键的chrome扩展。我正在用插件sdk构建引导(无重启)扩展。当我从内容脚本向页面注入单独的脚本时,它可以很好地工作,但当我想从页面访问资源时,它不允许我——错误消息类似于
拒绝访问受限制的URI。
我也可以从url栏访问它。我正在使用如下生成的url格式:
var data = require("sdk/self").data;
var url = data.url("some-resource.ext");
它给出了类似resource://some_long_addon_id/addon_name/path_to_resource
的东西
AFAIK,这是不允许的。
你能指定你要读取的资源类型吗?
如果是脚本,您可以将脚本内容加载到内容脚本中,然后通过将其注入页面script 的DOM来使用脚本标记添加它
//content script
var resourceData = self.data.load(NAME);
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.innerText = resurceData;
head.appendChild(script);
如果它是text/xml/html/json,您可以使用window.postMessage()传递它。这里显示了一个链接的例子
您可能还发现在内容脚本中编写一个方法来侦听内容脚本中的消息事件很有用,并且在从页面脚本接收到内容脚本中消息时,您可以使用window.postMessage()将资源数据
相关文章:
- 您可以使用JavaScript和Firefox扩展来更改现有页面吗
- 如何在谷歌开发者控制台上为firefox扩展创建oAuth项目
- 无法在XUL Firefox扩展中获取TinyMCE的实例
- FireFox扩展对TinyMCE编辑器执行脚本注入
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- firefox扩展/如何访问动态创建的元素
- 将jquery添加到firefox扩展中
- 替换 nsICertificateDialogs 从 Firefox 扩展
- 在firefox扩展上观察并保存http请求
- Firefox扩展页面modonAtttach很慢
- 为什么我的firefox扩展javascript不能访问opener窗口,也看不到window.name
- Firefox扩展不适用于http://https://以外的URL
- 为什么我的 init() 函数没有运行?(安装 Firefox 扩展时自动添加工具栏按钮,但仅在首次运行时)
- 如何在 Firefox 扩展的 JavaScript 中的按钮背景中插入图像
- 开发Firefox扩展最简单的方法是什么
- 如何在mozilla firefox扩展中更改自定义工具栏按钮的颜色
- firefox扩展对$.ajax的调用不起作用
- 使用firefox扩展获取SSL信息
- 自动运行firefox扩展jpm
- 如何引用Firefox扩展的数据目录中的文件