Chrome tabs.onActivated仅更新当前标签

时间:2016-05-06 06:27:55

标签: google-chrome google-chrome-extension

我有一个基本的Chrome扩展程序,当用户切换到新的活动标签时会触发。在后台页面中,将检查URL,并根据URL更改扩展图标。

chrome.tabs.onActivated.addListener(function(tabInfo) {
  chrome.tabs.get(tabInfo.tabId, function(tab) {
    update_tab(...)
  });
});

这很好用,但我遇到的问题是,当函数触发并决定更新图标时,用户可以再次切换标签,但图标会根据前一个标签进行更改。 / p>

如何处理这种更高的可靠性?

2 个答案:

答案 0 :(得分:1)

您可以使用每个标签浏览器操作图标,因此您无需跟踪标签切换。

如果您使用chrome.browserAction.setIcon更新图标,则需要一个可选的tabId参数。同样适用于setTitle

如果你这样做,你不必担心标签激活; onUpdated会通知您网址更改。

答案 1 :(得分:0)

您也可以尝试添加onUpdated侦听器:

chrome.tabs.onUpdated.addListener(function(tabInfo) {
  chrome.tabs.get(tabInfo.tabId, function(tab) {
    update_tab(...)
  });
});
  

窗口中的活动标签更改时触发。请注意标签的网址   可能不会在此事件触发时设置,但您可以收听   设置URL时要通知的onUpdated事件。 https://developer.chrome.com/extensions/tabs