0

異なるウィンドウに異なる browserAction アイコンを設定したい。私が見つけた唯一の方法は次のとおりです。

http://developer.chrome.com/extensions/browserAction.html#method-setIcon

しかし、それは文脈を必要としません。ウィンドウごとにアイコンが変わります。adBlockがこれを行うので、それが何らかの形で可能であることはわかっています。誰か方法を知っていますか?

4

1 に答える 1

3

これが私の解決策です。

function setIcon(state, getIconNameCallback) {

    // we need to set the icon globally first, 
    // to avoid blinking to default icon

    chrome.windows.getLastFocused(null, function(window) {
        chrome.tabs.getSelected(null, function(tab) {
            chrome.browserAction.setIcon({
                'path': getIconNameCallback(state, tab.url)
            });
        });
    });

    // then we must set the icon for each tab,
    // without that the extension wont behave
    // properly with multiple windows

    chrome.tabs.query({}, function(tabs) {
        for (var i = 0; i < tabs.length; i++) {
            chrome.browserAction.setIcon({
                'path': getIconNameCallback(state, tabs[i].url), 
                'tabId': tabs[i].id
            });
        }
    });

}
于 2013-02-15T17:36:25.337 に答える