Sto facendo un'estensione di cromo, e l'estensione ha due modalità: sempre attiva (alwaysOn
), o solo quando l'utente fa clic su di esso (onClick
). Voglio cambiare l'icona in blu o in rosso a seconda della modalità dell'utente, in modo che possano vederla a colpo d'occhio. Tuttavia, dopo aver aggiunto la riga chrome.browserAction.setIcon()
, l'icona continua a non cambiare quando necessario. Rimane solo sul logo predefinito.chrome.browserAction.setIcon non sta facendo nulla
Ecco il mio background.js:
// Get the behavior of the plugin; the default is set to "onClick", the other option is "alwaysOn"
chrome.storage.sync.get({
extensionBehavior: 'onClick'
}, function(items) {
if(items.extensionBehavior == 'onClick'){
chrome.browserAction.setIcon({path: "blue-logo.png"});
chrome.browserAction.onClicked.addListener(function() {
// When the extension icon is clicked, send a message to the content script
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {"message": tabs[0].url}, function(response){});
});
});
}
else {
chrome.browserAction.setIcon({path: "red-logo.png"});
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
// When the HTML loads, send a message to the content script
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {"message": tabs[0].url}, function(response){});
});
}
});
}
});
Tutto il resto funziona perfettamente, e il console.log() non mostra alcun errore. C'è qualche ragione per cui javascript "salterebbe" su queste particolari linee di codice? ("Queste particolari righe di codice" sono chrome.browserAction.setIcon({path: "blue-logo.png"});
e chrome.browserAction.setIcon({path: "red-logo.png"});
) Le immagini in questione si trovano nella stessa cartella del mio background.js, content_script.js, ecc. Quindi non sono sicuro se il percorso è stato appena letto errato o cosa .
MODIFICA: ho aperto la console e ho ricevuto il messaggio "Unchecked runtime.lastError durante l'esecuzione di browserAction.setIcon: Icona non valida." Cosa significa questo? Se si specifica il percorso completo a partire da C: \ Users ... \ blue-logo "Non riesco a trovare il messaggio di errore
il ridimensionamento delle icone lavorato anche per me ... consigliato è 128x128px: https://developer.chrome.com/extensions/manifest/icons – wodka
Questo dovrebbe avere enormi upvotes :) – SuperNOVA