Chrome扩展程序错误:"运行browserAction.setIcon时未经检查的runtime.lastError:图标无效."

Vis*_*hal 4 google-chrome-extension

我试图通过遵循此文档动态更改Chrome扩展程序图标.

不幸的是,它不能使用以下代码:

chrome.browserAction.setIcon({path: 'my_icon.png'});
Run Code Online (Sandbox Code Playgroud)

在控制台中,它失败并出现以下错误:

Unchecked runtime.lastError while running browserAction.setIcon: Icon invalid.
Run Code Online (Sandbox Code Playgroud)

Vis*_*hal 12

在网上其他地方阅读后,我发现我们需要指定大小为(或两者)19x19像素38x38像素的图像.

所以我调整了我的图标图像,并按如下方式制作了2份副本:

  • my_icon-19.png
  • my_icon-38.png

现在,当我尝试以下代码时,它按预期工作:

chrome.browserAction.setIcon({ path: { "19": "/images/my_icon-19.png",
                                       "38": "/images/my_icon-38.png" } });
Run Code Online (Sandbox Code Playgroud)

您不需要这两个版本来使其工作,因此以下也可以工作:

chrome.browserAction.setIcon({ path: "/images/my_icon-38.png" });
Run Code Online (Sandbox Code Playgroud)

  • 稍微提醒一下,很快(-ish)Chrome 将 [切换到 16 和 32 作为动作图标大小](https://bugs.chromium.org/p/chromium/issues/detail?id=546206)。也可以添加它们(Chrome 也接受这些尺寸)。 (2认同)