2

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

拒绝访问受限 URI。

. 我也可以从网址栏访问它。我正在使用这样生成的 url 格式:

var data = require("sdk/self").data;
var url = data.url("some-resource.ext");

这给出了类似的东西resource://some_long_addon_id/addon_name/path_to_resource

4

1 回答 1

1

AFAIK 是不允许的。

你能指定你试图读取的资源类型吗?

如果是脚本 - 您可以将脚本内容加载到内容脚本中,然后通过将其注入到页面脚本的 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() 回发到页面脚本资源数据

于 2013-07-07T19:38:06.403 回答