我有一个基本的Chrome扩展程序,当用户切换到新的活动标签时会触发。在后台页面中,将检查URL,并根据URL更改扩展图标。
chrome.tabs.onActivated.addListener(function(tabInfo) {
chrome.tabs.get(tabInfo.tabId, function(tab) {
update_tab(...)
});
});
这很好用,但我遇到的问题是,当函数触发并决定更新图标时,用户可以再次切换标签,但图标会根据前一个标签进行更改。 / p>
如何处理这种更高的可靠性?
答案 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