Google chrome extension Chrome扩展错误:“;运行browserAction.setIcon时未选中runtime.lastError:图标无效;

Google chrome extension Chrome扩展错误:“;运行browserAction.setIcon时未选中runtime.lastError:图标无效;,google-chrome-extension,Google Chrome Extension,我试图通过以下方式动态更改Chrome扩展图标 不幸的是,它无法使用以下代码: chrome.browserAction.setIcon({path: 'my_icon.png'}); 在控制台中,它失败,出现以下错误: 运行browserAction.setIcon时未选中runtime.lastError:图标无效 在阅读了web上的其他内容后,我发现我们需要指定大小为19x19 px或38x38 px的图像 因此,我调整了图标图像的大小,并制作了两份副本,如下所示: 我的图标-19.p

我试图通过以下方式动态更改Chrome扩展图标

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

chrome.browserAction.setIcon({path: 'my_icon.png'});
在控制台中,它失败,出现以下错误:

运行browserAction.setIcon时未选中runtime.lastError:图标无效


在阅读了web上的其他内容后,我发现我们需要指定大小为19x19 px38x38 px的图像

因此,我调整了图标图像的大小,并制作了两份副本,如下所示:

  • 我的图标-19.png
  • my_icon-38.png
现在,当我尝试以下代码时,它按预期工作:

chrome.browserAction.setIcon({ path: { "19": "/images/my_icon-19.png",
                                       "38": "/images/my_icon-38.png" } });
您不需要同时使用这两个版本,因此以下版本也可以使用:

chrome.browserAction.setIcon({ path: "/images/my_icon-38.png" });

稍微小心一点,很快就会有(-ish)Chrome。或许可以添加它们(Chrome也接受这些尺寸)。@Xan谢谢你的提醒。我还没试过那些尺码。但在最新版本的Chrome(51.0.2704.106)上,19和38似乎运行良好。另一方面,我想如果他们真的需要,他们会将19x19降到16x16,这样就不会破坏实时扩展。是的,这正是他们正在做的,看起来和听起来一样糟糕。这就是成熟和广泛采用的软件的发展。过去做出的决定(无论味道好坏)需要长期支持。