0

我正在尝试切换我的 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");
    }
});

尽管这在大多数情况下都有效,但有时它会报告已更改的状态,但不会切换图标。有谁知道为什么会这样?

4

1 回答 1

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

现在,它不再为每个打开的选项卡使用相同的状态,而是将每个单独的选项卡的状态存储在一个数组中,并使用它。

于 2013-05-07T16:37:39.097 回答