Как динамически изменить значок расширения Chrome?

select t3.name, sum(t3.prod_A) as Prod_A, sum(t3.prod_B) as Prod_B, sum(t3.prod_C) as    Prod_C, sum(t3.prod_D) as Prod_D, sum(t3.prod_E) as Prod_E  
from
(select t2.name as name, 
case when t2.prodid = 1 then t2.counts
else 0 end  prod_A, 

case when t2.prodid = 2 then t2.counts
else 0 end prod_B,

case when t2.prodid = 3 then t2.counts
else 0 end prod_C,

case when t2.prodid = 4 then t2.counts
else 0 end prod_D, 

case when t2.prodid = "5" then t2.counts
else 0 end prod_E

from 
(SELECT partners.name as name, sales.products_id as prodid, count(products.name) as counts
FROM test.sales left outer join test.partners on sales.partners_id = partners.id
left outer join test.products on sales.products_id = products.id 
where sales.partners_id = partners.id and sales.products_id = products.id group by partners.name, prodid) t2) t3

group by t3.name ;
0
задан toti 24 March 2019 в 19:20
поделиться

1 ответ

Вы можете использовать фоновый скрипт для достижения этой цели:

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});

        }
    });
});
0
ответ дан senty 24 March 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: