Ответ 1
Скрипты содержимого не имеют доступа к большинству API расширений. Вместо этого вам нужно будет передать сообщение, чтобы сообщение script оповело о том, какие работы необходимо выполнить.
Ваш контент script должен отправить сообщение с помощью chrome.runtime.sendMessage
, а фоновая страница должна прослушиваться с использованием chrome.runtime.onMessage.addListener
:
Содержимое script:
if(shouldChangeIcon) {
// send message to background script
chrome.runtime.sendMessage({ "newIconPath" : folder + icons[2] });
}
Фоновая страница:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
// read `newIconPath` from request and read `tab.id` from sender
chrome.browserAction.setIcon({
path: request.newIconPath,
tabId: sender.tab.id
});
});