无法在Firefox 41的资源协议页面中打开文件协议链接



我在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插件,对吗?

最新更新