jak włączyć / wyłączyć przyciski / ikony dla rozszerzenia chrome?

Chcę, aby użytkownik zdecydował, kiedy chce uruchomić skrypt, aby po otwarciu przeglądarki wyświetlana była ikona „wyłączone” i nie uruchamia się żaden skrypt; ale gdy użytkownik go kliknie, zmienia się w ikonę „on” i wykonuje skrypt użytkownika, dopóki użytkownik nie kliknie. Mam dwie ikony png, każda o wymiarach 32x32:on.png ioff.png.

Moje dwa pytania:

Jak mogę ustawić domyślną ikonę my off.png? Próbowałem tego w moimmanifest.json ale nie ustawił ikony, zamiast tego pokazał kawałek układanki (zakładam domyślnie):

...
"browser_action": {
   "default_icon": {
       "32": "off.png"
       },
   "default_title": "icon"
},
"icons": {
   "32": "on.png",
   "32": "off.png"
},
"background": {
   "scripts": ["background.js"] 
}, 
"content_scripts": [{ 
   "js": ["SCRIPT.user.js"]
...

Oto mojabackground.js, gdzie tymczasowo wykonałem szybką funkcję, aby spróbować włączyć / wyłączyć bazując naonClicked

var status = 0;

function toggle() {
if (status == 0){
    chrome.browserAction.setIcon({path: "on.png", tabId:tab.id}); // so it's set for the tab user is in
    chrome.tabs.executeScript(tab.id, file:"SCRIPT.user.js"); //execute for this tab
    status++;
}
if (status == 1){
    chrome.browserAction.setIcon({path: "off.png", tabId:tab.id});
    chrome.tabs.executeScript(tab.id, code:"alert()"); // execute nothing when off
    status++;
}
if (status > 1)
    status = 0; // toggle
}

chrome.browserAction.onClicked.addListener(function(tab) {
    toggle();
});

(Powinienem wspomnieć, że po załadowaniu folderu zawierającego moje skrypty, ikony i manifest w „ładuj rozpakowane rozszerzenie”, a następnie wybierz „sprawdź widoki”, aby sprawdzić, czy coś jest nie tak, widzęUncaught SyntaxError: Unexpected token : w background.js, chociaż nie wiem, o co chodzi) ... i wydaje się, że nie pokazuje mojego skryptu użytkownika w folderze skryptów

Więc, jakieś pomysły, pomóż?

questionAnswers(1)

yourAnswerToTheQuestion