无法在Firefox 41

时间:2015-11-25 20:04:29

标签: firefox firefox-addon firefox-addon-sdk

我在Firefox配置文件中创建了一个本地文件(log.html),并试图在附加页面上打开它(附加文件夹/ data / log.html,它在URL栏中显示为资源协议) 。

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方法window.open

function addLogPath(url) {
    $('#logpath').on("click", function() {
        window.open(url);
    });
}

但错误是

  

JavaScript错误:,第0行:错误:访问   '文件:///Users/usr/Library/Application%20Support/Firefox/Profiles/05rhodfg.cfxo/log.html'   从脚本被拒绝

BTW,在Firefox版本41之前,它没有问题。 您能否建议其他解决方法来解决这个问题?谢谢!

编辑: added add-on example to reproduce the problem

在终端中下载并运行以下语句: $ cd fileProtocolExample&& cfx run

1 个答案:

答案 0 :(得分:0)

执行self.data.url('filename_here')以获取文件的路径。

它看起来像resource://your-extension-id/data/filename_here,然后这应该加载正常。前面的resource://很重要,请确保您获取并使用该网址。

file://无法使用,因为您的插件以zip格式打包。它没有被提取到系统中。它在Firefox 41中是如何工作的?你的插件当时是否打开包装?这是一个Addon-SDK插件吧?