我正在尝试切换pageAction的图标。这是我正在使用的代码:
var activated = new Boolean();
chrome.pageAction.onClicked.addListener(function(tab) {
if(!activated){
chrome.pageAction.setIcon({tabId: tab.id, path: 'icons/expanded.png'});
activated = true;
alert("activated");
}else{
chrome.pageAction.setIcon({tabId: tab.id, path: 'icons/expand.png'});
activated = false;
alert("not activated");
}
});
虽然这在大多数情况下都有效,但有时它会报告已更改的状态,但不会切换图标。 有人知道为什么会这样吗?
答案 0 :(得分:0)
感谢Rob W,问题现在已经解决了。这是工作代码:
var activated = new Array();
function checkForValidUrl(tabId, changeInfo, tab) {
chrome.pageAction.show(tabId);
activated[tabID] = false;
};
chrome.pageAction.onClicked.addListener(function(tab) {
if(!activated[tab.id]){
chrome.pageAction.setIcon({tabId: tab.id, path: 'icons/expanded.png'});
activated[tab.id] = true;
alert("activated");
}else{
chrome.pageAction.setIcon({tabId: tab.id, path: 'icons/expand.png'});
activated[tab.id] = false;
alert("not activated");
}
});
它不是为每个打开的选项卡使用相同的状态,而是现在为数组中的每个选项卡存储状态,并使用它。