異なるウィンドウに異なる browserAction アイコンを設定したい。私が見つけた唯一の方法は次のとおりです。
http://developer.chrome.com/extensions/browserAction.html#method-setIcon
しかし、それは文脈を必要としません。ウィンドウごとにアイコンが変わります。adBlockがこれを行うので、それが何らかの形で可能であることはわかっています。誰か方法を知っていますか?
異なるウィンドウに異なる browserAction アイコンを設定したい。私が見つけた唯一の方法は次のとおりです。
http://developer.chrome.com/extensions/browserAction.html#method-setIcon
しかし、それは文脈を必要としません。ウィンドウごとにアイコンが変わります。adBlockがこれを行うので、それが何らかの形で可能であることはわかっています。誰か方法を知っていますか?
これが私の解決策です。
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
});
}
});
}