如何从内容脚本访问 Chrome 扩展程序的图标

Kat*_*tie 3 google-chrome-extension

在我的 Chrome 扩展程序的内容脚本中,我尝试修改网站的图标以(暂时)将其设置为我的扩展程序的图标。但是,我无法找出从内容脚本中引用扩展程序图标的正确方法。我试过了:

    favicon.href ='/images/icon-38.png';
    console.log("set href of favicon to " +favicon.href);
Run Code Online (Sandbox Code Playgroud)

但 favicon.href 的值最终相对于我所在的任何网站,例如:set href of favicon to https://twitter.com/images/icon-38.png

从我的manifest.json:

"icons": {
  "16": "images/icon-16.png",
  "38": "images/icon-38.png"
},
Run Code Online (Sandbox Code Playgroud)

在我的后台脚本中,我当然可以用它们的相对路径引用我的图标......但是我如何从内容脚本中做到这一点?

sam*_*ris 6

您需要将图标指定为web_accessible_resources

"icons": {
  "16": "images/icon-16.png",
  "38": "images/icon-38.png"
},
"web_accessible_resources": [
  "images/icon-16.png",
  "images/icon-38.png"
],
Run Code Online (Sandbox Code Playgroud)

然后使用chrome.runtime.getURLchrome.extension.getURL自 Chrome 58 起已弃用)

"icons": {
  "16": "images/icon-16.png",
  "38": "images/icon-38.png"
},
"web_accessible_resources": [
  "images/icon-16.png",
  "images/icon-38.png"
],
Run Code Online (Sandbox Code Playgroud)