【问题标题】:Firefox add-on SDK: Access html and image files under Data directory from content scriptFirefox 插件 SDK:从内容脚本访问 Data 目录下的 html 和图像文件
【发布时间】:2013-05-24 11:15:33
【问题描述】:

Firefox 插件 SDK 专家您好,

我非常难以解决以下问题。

从我的内容脚本中,我需要使用一组 HTML 文件和图像文件来绘制一个 UI,这些文件和图像文件存储在我的附加组件的 Data 目录下。

我使用 self.data.url 获取 main.js 中的文件 URL,并使用 port.emit 将 URL 传递给内容脚本。内容脚本已成功接收 URL。

当我在内容脚本中记录 data/html/myfile.html 的 URL 时,它看起来像这样: 资源://jid1-veokemuf24jrmw-at-jetpack/myaddon/data/html/myfile.html

问题是当我像这样在文档中附加元素时似乎什么也没发生:

var a = this;
a.el = $("<div />").attr("id", "topbar");
$("body").append(a.el);
$("#topbar").load(html_url, function() {});

但是,如果我将 html 代码从文件复制粘贴到内容脚本,那么它就可以工作。

另外,如果我将 html 文件 URL 粘贴到 Firefox 的地址字段,它就可以正常打开。

我的解决方案无法正常工作有什么基本原因吗?或者,我是否需要为我的插件定义一些权限以使数据目录下的文件可以从内容脚本访问?

非常感谢所有帮助。

【问题讨论】:

  • html是否显示在面板中?此外,从数据加载的 html 文件中引用的任何资源都可以使用相对 url,例如,如果您有 index.html,它可以通过 ./some-image.png 引用同一目录中的图像
  • 感谢 canuckistani 的快速回复。不,它不在面板中。 html通过page-mod添加到页面中。看,我的插件向页面注入了一些 JavaScript,以便在当前页面之上绘制一些额外的 UI。现在我已经能够制作要在页面中加载和绘制的图像 (png),因此显然可以从内容脚本访问附加组件的 Data 文件夹内容。现在只是 JQuery.load() 没有做任何事情。没有例外,就是什么都没发生。
  • 我发现 JQuery.load 在回调函数的参数 (xhr.statusText) 内给出以下错误:“访问受限 URI 被拒绝”(代码 1012)。现在我正在尝试找出是否有什么我可以做的。
  • 不确定,也许资源 uri 不适用于 Web 内容?
  • 或者,尤其是 jquery.load 可能需要一个 http url,而不是资源 uri

标签: firefox sdk firefox-addon-sdk add-on content-script


【解决方案1】:

我放弃了,把 HTML 内容放到了我们的服务器上。现在我在 Fancybox 和内容脚本方面遇到了一个完全不同的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    相关资源
    最近更新 更多