我在Firefox配置文件中创建了一个本地文件(log.html),并试图在附加页面中打开它(附加文件夹/data/log.html,在URL栏中显示为Resource protocol)。
self.port && self.port.on('add-log-path', function(payLoad) {
addLogPath(payLoad);
});
function addLogPath(url) {
// url == "file:///Users/usr/Library/Application Support/Firefox/Profiles/05rhodfg.cfxo/log.html"
$('#logpath').attr('href', url);
}
我也尝试过将其更改为JS方法窗口。打开
function addLogPath(url) {
$('#logpath').on("click", function() {
window.open(url);
});
}
但错误是
JavaScript错误:,第0行:错误:访问'file:///Users/usr/Library/Application%20Support/Firefox/Profiles/05rhodfg.cfxo/log.html'来自脚本拒绝
顺便说一句,在Firefox版本41之前,这样做没有问题。你能建议其他解决方法吗?非常感谢。
编辑:添加附加示例以重现问题
在终端中下载并运行以下语句:$cd文件协议示例&;cfx运行
执行self.data.url('filename_here')
以获取文件的路径。
它看起来像resource://your-extension-id/data/filename_here
,那么它应该可以加载。前面的resource://
很重要,请确保您获得并使用该URL。
file://
不起作用,因为您的插件是压缩的。它没有被提取到系统中。它是如何在Firefox 41中工作的?你的插件当时打开了吗?这是一个插件SDK插件,对吗?