Sta*_*tan 4 google-chrome-extension browser-action
我在Chrome中使用浏览器操作图标时遇到了一个奇怪的问题.清单中定义了浏览器操作的默认图标.图标显示正确.然后在后台页面中,在某些情况下,我打电话给:
chrome.browserAction.setIcon({path:"green_32.png", tabId:request.tabId});
Run Code Online (Sandbox Code Playgroud)
此图标闪烁片刻,然后更改回默认图标.活动选项卡及其传递的ID setIcon在整个过程中保持不变.
有人可以提出一个想法,为什么会这样?
每次将图标重置为默认状态的原因是因为我setIcon 在选项卡完成加载之前调用并获得"完成"状态.
我想在标签或浏览器操作的文档中应该有关于此的一些信息,但我没有找到它:默认图标实际上是按照设计应用到完成加载后的特定页面.我将调用移动setIcon到tabs.onUpdated处理程序中,现在自定义图标仍然存在.
这与我之前的理解相矛盾,即浏览器操作图标是基于每个选项卡设置的,与加载到选项卡中的页面及其状态无关.
@KonradDzwinel友情提供了一个简单的扩展来测试案例(看看评论).我更改了background.js脚本来演示此行为:
chrome.browserAction.onClicked.addListener(function(tab)
{
chrome.browserAction.setIcon({path: 'gfx/icon2.png', tabId: tab.id});
});
Run Code Online (Sandbox Code Playgroud)
要重现此行为,请在任何选项卡上按浏览器操作图标以将其更改.然后刷新页面.结果,浏览器操作图标重置为默认值.
如果在某些文档中解释了这种行为,请在评论中写下这些,我将更新答案.根据我到目前为止所读到的内容,我确信在创建时为新选项卡设置了默认图标,然后对其进行的任何更改都完全受扩展控制.
| 归档时间: |
|
| 查看次数: |
1836 次 |
| 最近记录: |