我正在构建一个 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/