Вы можете использовать фоновый скрипт для достижения этой цели:
chrome.browserAction.setIcon({path: '../images/1.png', tabId: info.tabId});
Вы можете вызвать это с некоторыми слушателями:
chrome.tabs.onActivated.addListener()
chrome.tabs.onUpdated.addListener()
chrome.runtime.onMessage.addListener()
Пример 1. Позвольте мне показать, как вы запускаете его из скрипта контента, отправив сообщение в фоновый скрипт:
В скрипте контента отправьтесообщение:
chrome.runtime.sendMessage({icon1: true})
и в фоновом режиме:
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse)
{
if(msg.icon1) {
chrome.tabs.query({active:true, windowType:"normal", currentWindow: true},function(d){
var tabId = d[0].id;
chrome.browserAction.setIcon({path: '../icon1.png', tabId: tabId});
})
}
}
Пример 2:
chrome.tabs.onActivated.addListener(function(info){
chrome.tabs.get(info.tabId, function(change){
var matching = false; // functionality to determine true/false
if(matching) {
chrome.browserAction.setIcon({path: '../icon1.png', tabId: info.tabId});
return;
} else {
chrome.browserAction.setIcon({path: '../icon2.png', tabId: info.tabId});
}
});
});