如何在Chrome扩展中更改默认图标?

25

我正在进行Chrome扩展程序开发。

我的manifest.json文件如下所示

{
"name": "DemoExtension",
  "version": "1.0",
  "description": "Official addon from demeo",
  "browser_action": {
    "default_icon": "star-on.png",
    "popup": "shopcmp.htm"  
  },
  "permissions": [
    "tabs"    
  ],
  "background_page": "background.html"   
}

我想在运行时更改默认图标图像。

5个回答

23

如果你想改变浏览器操作的默认图标,只需更改

"browser_action": {
  "default_icon": "star-on.png", //<--this line: change "star-on.png" to the icon you want
  "popup": "shopcmp.htm"  
},
那行代码指的是扩展程序在首次加载时默认的图标。
要在代码中更改图标,请调用 chrome.browserAction.setIcon(details)

如果您想更改扩展程序图标(在安装期间显示的图标、在 Chrome 网上应用店中显示的图标、在扩展管理页面中显示的图标以及作为网站图标显示的图标),请在您的 manifest.json 文件中添加一个 icons 属性。


对我来说,在Chrome中browserAction未定义。你能帮忙吗? - Adil Malik
但是如何在运行时设置default_icon呢?我需要这样做来避免在更改图标时出现闪烁。 - ciembor
1
使用chrome.browserAction.setIcon({path:"icon.png"}); - Priyadarshi Kunal
清单文件中browser_action和page_action有什么不同? - Hieu.Gi
但是标志在扩展页面内没有更新...有什么线索吗?@DigitalPlane - gumuruh

21

2
另外,如果有人在想为什么Nathan在他的示例中指定了一个png图像,这是因为在未打包的扩展程序(实际上是在开发模式下),其他类型的图像将无法工作 - lut
1
这个路径是相对于 background.js 还是存在于 images 文件夹中的文件? - Muhammed Ozdogan
2
如果您正在使用manifest 3,您将需要使用chrome.action.setIcon - Patrick

6

使用新的清单文件v3,在运行时更改图标的标准如下

chrome.action.setIcon()

1

注意:如果您引用扩展文件夹中的图像,请使用绝对路径。例如,/icon.png,而不是icon.png,否则会触发“无法获取”的错误。


0
如果您想让每个页面都有自己的图标状态,请使用chrome.pageAction

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接