我在 Chrome 中的浏览器操作图标有一个奇怪的问题。 list 中定义的浏览器操作有一个默认图标。图标显示正确。然后在后台页面中,在某些情况下,我调用:
chrome.browserAction.setIcon({path:"green_32.png", tabId:request.tabId});
此图标闪烁片刻,然后变回默认图标。事件选项卡及其 ID 传递给
setIcon
在整个过程中保持不变。有人可以提出一个想法,为什么会发生这种情况?
最佳答案
每次图标都重置为默认状态是因为我打了setIcon
之前 该选项卡完成加载并获得“完成”状态。
我想在 tabs 的文档中应该有一些关于此的信息。或在 browser actions ,但我没有找到它:默认图标实际上是按设计应用于完成加载后的特定页面的。我移动了电话setIcon
进入 tabs.onUpdated
处理程序,现在自定义图标仍然存在。
这与我之前的理解相矛盾,即浏览器操作图标是基于每个选项卡设置的,而不管加载到选项卡中的页面及其状态。
@KonradDzwinel 好心提供了一个简单的扩展来测试案例(查看评论)。我更改了它的 background.js 脚本来演示这种行为:
chrome.browserAction.onClicked.addListener(function(tab)
{
chrome.browserAction.setIcon({path: 'gfx/icon2.png', tabId: tab.id});
});
要重现此行为,请在任何选项卡上按浏览器操作图标进行更改。然后刷新页面。结果,浏览器操作图标重置为默认值。
如果在某些文档中解释了这种行为,请在评论中写下它,我会更新答案。从我到目前为止所读到的内容来看,我确信在创建时为新选项卡设置了默认图标,然后对其进行的任何更改都完全在扩展程序的控制之下。
关于google-chrome-extension - 为什么在应用自定义图标后浏览器操作默认图标会重新出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12710061/