2

내가 전에 하나의 활성 탭 내 확장 아이콘을 전환 할 수 있었다 :Google 크롬 확장 - 모든 탭의 아이콘을 동시에 전환 할 수 있습니까?

chrome.browserAction.onClicked.addListener(function(tab) { 
    toggle = !toggle; 
    if(toggle){ 
    active_tab=tab.id; 
    chrome.browserAction.setIcon({path: "on.png", tabId:tab.id}); 
    } 
    else{ 
    chrome.browserAction.setIcon({path: "off.png", tabId:active_tab}); 
    } 
}); 

하지만 어떻게 한 번 ... 새로운 탭을 포함하여 모든 탭에 대한 그 아이콘을 변경하려면 어떻게해야합니까?

쉬운 방법이 있나요?

답변

3

당신은 당신이 browserAction.setIcon()에 전달 개체에 tabId 속성을 공급하지 않음으로써이 작업을 수행. documentation for tabId는 선택 이며한다고 그것이를 지정한 경우 :

는 특정 탭을 선택하면에 대한 변경을 제한합니다. 탭을 닫으면 자동으로 재설정됩니다.

당신이 tabId을 제공하지 않으면

는 다음 path 또는 imageData에 지정하는 것을 모든 탭에 적용됩니다. 단추의 속성을 변경하는 browserAction의 메서드가 작동하는 표준 방법입니다.

chrome.browserAction.onClicked.addListener(function(tab) { 
    toggle = !toggle; 
    if(toggle){ 
    active_tab=tab.id; 
    chrome.browserAction.setIcon({path: "on.png"}); 
    } 
    else{ 
    chrome.browserAction.setIcon({path: "off.png"}); 
    } 
}); 
+0

권자, 난 그냥 내 자신을 그것을 알아 냈다 ...하지만 그래 훨씬 더 나은이 방법 :

따라서, 귀하의 경우는 것 – Anonymous

0

전환 탭에서 활성화하는 다른 수신기를 추가하여 해결되었습니다.

chrome.browserAction.onClicked.addListener(function(tab) { 
    toggle = !toggle; 
    if(toggle){ 
     chrome.browserAction.setIcon({path: "on.png", tabId:tab.id}); 
    } 
    else{ 
     chrome.browserAction.setIcon({path: "off.png", tabId:tab.id}); 
    } 
}); 

chrome.tabs.onActivated.addListener(function (tab) { 
    if(toggle){ 
     chrome.browserAction.setIcon({path: "on.png", tabId:tab.id}); 
    } 
    else{ 
     chrome.browserAction.setIcon({path: "off.png", tabId:tab.id}); 
    } 
}); 
관련 문제