javascript - 如何访问 firefox 扩展资源

标签 javascript firefox-addon firefox-addon-sdk

如何从直接注入(inject)页面的 javascript 代码访问 firefox 扩展数据? 我在 manifest.json 中寻找类似于 web_accessible_resources 键的东西,用于 chrome 扩展。 我使用 addon-sdk 构建自举(restarless)扩展。当我从内容脚本将单个脚本注入(inject)页面时它工作正常,但是当我想从页面访问资源时它不会让我 - 错误消息类似于

Access to restricted URI denied.

.我也可以从网址栏访问它。我使用这样生成的 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 这是不允许的。

您能否指定您尝试阅读的资源类型?

如果是脚本——可以将脚本内容加载到content script中,然后使用script标签将其注入(inject)到页面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() 传递它。 此处显示了一个示例 a link

您可能还会发现在内容脚本中编写一个方法来监听内容脚本中的消息事件很有用,并且在内容脚本中从页面脚本接收消息时,您可以使用 window.postMessage( ) 与资源数据

关于javascript - 如何访问 firefox 扩展资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515055/

相关文章:

javascript - 如何遍历嵌套在对象中的数组,而对象又嵌套在数组中?

javascript - cocoa swift : how to automate click on html using javascript using in WKWebView

firefox - 在 Mozilla SDK 上加载之前更改 url 的监听器

io - Mozilla Labs 的 Jetpack IO 功能是什么?

javascript - 如何从 SDK 插件数据文件夹加载 dll?

javascript - 如何在扩展中播放音频?

javascript将dom结构转换为哈希对象

localization - Firefox 插件本地化

javascript - 在 Firefox 插件中显示目录浏览对话框

javascript - D3.js折线图方向错误