Firefox扩展试图将chrome:// image插入页面

时间:2012-09-12 21:16:16

标签: firefox-addon

我正在开发一个firefox扩展程序,我正在尝试添加一个存储扩展名的图像(使用chrome://访问的那种,虽然我不确定是否有正式名称)

body.innerHTML+="<div style=\"position:fixed;top:0em;left:0em;background-color:white;\"><img src=\"chrome://tumblrscrollr/content/save.png\" /></div>";

这应该将save.png放在页面的左上角,但是没有任何内容出现(甚至没有白色背景)。如果我用互联网上的网址替换chrome://tumblrscrollr/content/save.png,图像会正确显示。如果我直接在地址栏中访问chrome://tumblrscrollr/content/save.png,它显示正常。我假设有一些安全的东西或某些东西不允许页面中的img标签访问扩展程序的文件,但由于谷歌不支持符号和任何搜索'chrome'只返回浏览器,我发现很难找到任何答案。

1 个答案:

答案 0 :(得分:3)

您需要将contentaccessible flag用于tumblrscrollr Chrome包,这样才能让网页使用其图片。这意味着您的chrome.manifest文件应该有这样的行:

content tumblrscrollr foo/bar contentaccessible=yes

请注意,此标志始终必须在content条目中指定,但它会影响以chrome://tumblrscrollr/开头的任何地址,例如chrome://tumblrscrollr/skin/

顺便说一下,你不应该添加这样的元素 - 这会使浏览器再次解析整个文档主体,这很慢并且可能导致各种副作用。如果你需要添加一个元素,那么只需创建该元素并添加它,例如:

var element = body.ownerDocument.createElement("div");
element.setAttribute("style", "position:fixed;top:0em;left:0em;background-color:white;");
element.innerHTML = "<img src=\"chrome://tumblrscrollr/content/save.png\" />";
body.appendChild(element);