Расширение Chrome: как изменить значок на фокусе вкладки? - PullRequest
2 голосов
/ 03 июня 2011

Я хочу иметь возможность изменить значок моего расширения в соответствии с тем, какой сайт я сейчас просматриваю. Как я могу прослушать изменения в фокусе вкладки?

Ответы [ 2 ]

2 голосов
/ 12 февраля 2013

Я думаю, что понял это. Вам нужны два слушателя. Один ощущать, когда вкладка была изменена, другой ощущать, когда она обновляется И тогда они оба могут запускать одну и ту же функцию. Вот что будет в фоновом файле ...

function changeIcon() {
    //query the information on the active tab
    chrome.tabs.query({active: true}, function(tab){
        //pull the url from that information
        var url=tab[0].url;
        //do whatever you need to do with the URL
        //alert(url);
        //change the icon
        chrome.browserAction.setIcon({path: 'pathToIcon'});
    });
}

//listen for new tab to be activated
chrome.tabs.onActivated.addListener(function(activeInfo) {
    changeIcon();
});

//listen for current tab to be changed
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    changeIcon();
});
1 голос
/ 06 июня 2011

Просто зарегистрируйтесь для получения уведомлений об обновлениях на вашей фоновой странице:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab)
{
    if (changeInfo.status == "loading")
    {
        var url = tab.url;
        var iconPath = ???
        chrome.pageAction.setIcon({tabId: tabId, path: iconPath});
    }
});

Этот обработчик будет вызываться всякий раз, когда вкладка меняет местоположение. Вам не нужно заботиться о том, какая вкладка выбрана в настоящий момент, потому что вы определили разные значки для каждой вкладки. Тем не менее, если вы хотите сделать это - http://code.google.com/chrome/extensions/tabs.html#event-onSelectionChanged это путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...