google-chrome-extension - 为什么在应用自定义图标后浏览器操作默认图标会重新出现?

标签 google-chrome-extension browser-action

我在 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/

相关文章:

javascript - 无法使用 Chrome 扩展程序设置 cookie

javascript - 如何在 popup.html 中以编程方式隐藏扩展程序的浏览器操作图标?

google-chrome-extension - chrome 扩展弹出窗口无法立即打开

javascript - 如何通过 javascript(chrome 扩展)将文本从一个选项卡复制并粘贴到另一个选项卡?

javascript - 获取选项卡 ID 或 URL 并使用 getCurrent 显示它

javascript - 如何在 javascript 中管理变量的并发访问

javascript - 将图像放入 chrome.storage 扩展中

javascript - 用于切换(隐藏/显示)我的 chrome 扩展程序的键盘快捷键

c# - 在 Internet Explorer BHO 中添加浏览器操作按钮

google-chrome-extension - browserAction 打开缓慢,除非已在选项卡中打开