javascript - 为什么 Chrome 扩展图像在添加到 DOM 时显示为损坏?

标签 javascript jquery html css google-chrome-extension

我正在构建一个 Chrome 扩展程序,并试图通过内容脚本向 DOM 添加一个带有背景图像的 div。 CSS 加载正确,并且通过开发者工具检查器查看图像 URL 似乎是正确的。

$('.close-button').css('background', 'url('+chrome.extension.getURL('img/btn_close.png')+')');

URL 在检查器中显示为

chrome-extension://fdghianmcdbcgihapgdbjkdoaaocmoco/img/btn_close.png

但是图片不会在后台加载。如果我做同样的事情,但将图像加载为 img 标签的 src,则图像在浏览器中清楚地显示为已损坏。

但是,当我将此 URL 粘贴到浏览器 URL 栏并加载它时,它显示正常。将它加载到 DOM 中有什么问题?

最佳答案

我在 chrome 扩展文档中找到了答案。默认情况下,网页 DOM 中无法访问扩展根目录中的文件。开发人员可以使用 manifest.json 文件中的“web_accessible_resources”设置覆盖它:

http://code.google.com/chrome/extensions/manifest.html#web_accessible_resources

{
  ...
  "web_accessible_resources": [
    "images/my-awesome-image1.png",
    "images/my-amazing-icon1.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js"
  ],
  ...
}

特别感谢 Matt Greer 建议使用数据 URL 的评论,我认为这也有效。

关于javascript - 为什么 Chrome 扩展图像在添加到 DOM 时显示为损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10263230/

相关文章:

javascript - Highchart x 轴在特定日期后显示标签,无论 x 轴类别中有什么

jquery - 如何使用 css 更改特定页面内的 h2 位置?

javascript - 如何将scrollIt 与Meteor 一起使用?

html - 不需要的滚动条右边距

javascript - Firefox 链接到 javascript 函数会在不需要时打开一个新窗口

c# - 在 JSON 中表示子对象的正确语法是什么?

javascript - 访问指令中的元素 "computed style"

javascript - 谷歌地图自定义控制位置 - BOTTOM_RIGHT 不工作

javascript - jQuery:如何使用 jquery 勾选复选框而不执行它的绑定(bind)事件?

html - CSS:框右侧的旋转阴影