我想知道如何在Chrome扩展程序中插入图片。
<img id="image" src="logo.png" />
我正在将html标签正确插入网站,但自然无法加载该logo.png图片。
有关如何修改manifest.json的任何想法?
答案 0 :(得分:73)
问题有两种可能的原因。
您正在使用src="logo.png"
注入图片。插入的图像元素成为页面的一部分,因此浏览器不会尝试从扩展程序加载图像。
要解决此问题,请使用chrome.extension.getURL('logo.png');
获取资源的绝对网址。
"manifest_version": 2
。默认情况下,这会禁用所有外部使用的资源。发生此错误时,控制台中将显示以下消息:
不允许加载本地资源:chrome://gbmfhbpbiibnbbgjcoankapcmcgdkkno/logo.png
要解决此问题,请将资源添加到白名单,即清单文件中的"web_accessible_resources"
:
...,
"web_accessible_resources": ["logo.png"]
}
更新:
chrome.extension.getURL('logo.png')
自Chrome 58以来已弃用。请使用
runtime.getURL
。
答案 1 :(得分:0)
我找到的唯一实用的解决方案是:
<img id="icon" src="./icon.png" alt="">
let icon = document.getElementById("icon);
icon.src = chrome.runtime.getURL("icon.png");
"web_accessible_resources": [{
"matches": ["<all_urls>"],
"resources": ["icon.png"]
}
答案 2 :(得分:0)
这个解决方案对我有用。
"web_accessible_resources": ["logo.png"]
src='chromeextension://[ID]/images/logo.png'
访问它