如何从直接注入页面的javascript代码访问firefox扩展数据?
我在manifest.json中寻找类似于web_accessible_resources
键的内容,用于chrome扩展。
我正在使用addon-sdk构建bootstraped(restarless)扩展。当我从内容脚本将单个脚本注入页面时,它工作正常,但是当我想从页面访问资源时它不会让我 - 错误消息就像
拒绝访问受限制的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
答案 0 :(得分:1)
不允许使用AFAIK。
您可以指定您尝试阅读的资源类型吗?
如果是脚本 - 您可以将脚本内容加载到内容脚本中,然后使用脚本标记将其添加到页面DOM的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回发到页面脚本( )与资源数据