【问题标题】:How to add a local image in my firefox entension?如何在我的 Firefox 扩展中添加本地图像?
【发布时间】:2010-06-12 03:43:37
【问题描述】:

我正在开发一个 firefox 扩展并创建一个表并在其中添加一个图像,然后我创建一个图像: var _img = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "xul:image");

然后我发现我无法使用本地图像设置其属性“src”,就像使用它的 Url: chrome:\....,所以我必须在 web url:http:\ 中找到它,但是会出现一个问题,当 http:\ 无法访问时,怎么办?我是否可以使用本地 url 设置图像的属性?非常感谢!

【问题讨论】:

    标签: javascript firefox url firefox-addon


    【解决方案1】:

    在 Firefox 3 及以后的版本中,<img><script> 或从不受信任的来源加载的内容中包含或添加到的其他元素无法再引用 chrome 资源。此限制适用于不受信任的源定义的元素和受信任的扩展添加的元素。如果需要明确允许此类引用,请将 contentaccessible 标志设置为 yes 以获取旧版本 Firefox 中的行为。

    contentaccessible 标志仅适用于内容包:它不能用于区域设置或皮肤注册。但是,匹配的语言环境和皮肤包也会暴露给内容。

    n.b.:因为旧版本的 Firefox 不理解 contentaccessible 标志,所以任何设计用于 Firefox 3 和旧版本 Firefox 的扩展都需要提供回退。

    解决方案

    如果您的扩展名为 foo 并且您的图像位于 chrome/content/bar.png 中,请将以下内容放入您的 chrome.manifest 文件中:

    content foo chrome/content/
    content foo chrome/content/ contentaccessible=yes
    

    您现在可以使用

    <img src="chrome://foo/content/bar.png">
    

    --

    取自https://developer.mozilla.org/en/chrome_registration#contentaccessible

    【讨论】:

    • 除了你可能不希望你的整个 chrome/content 文件夹是内容可访问的,我想。因此,也许只需为您需要从非特权页面访问的一两个图像执行此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2020-09-25
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    相关资源
    最近更新 更多