Bir krom uzantısı yapıyorum ve uzantının iki modu var: her zaman açık (alwaysOn
) veya yalnızca kullanıcı tıkladığında (onClick
). Kullanıcının moduna bağlı olarak mavi veya kırmızı olacak simgeyi değiştirmek istiyorum, böylece bir bakışta görebilirler. Ancak, chrome.browserAction.setIcon()
satırını ekledikten sonra, simge gerektiğinde hala değişmez. Sadece varsayılan logoda kalır. Başkachrome.browserAction.setIcon hiçbir şey yapmıyor
// 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){});
});
}
});
}
});
Herşey mükemmel çalışır ve console.log() hataları göstermiyor:
İşte benim background.js olduğunu. Javascript'in bu özel kod satırlarını "atlatması" için herhangi bir sebep var mı? ("Bu özel kod satırları" chrome.browserAction.setIcon({path: "blue-logo.png"});
ve chrome.browserAction.setIcon({path: "red-logo.png"});
'dur) Söz konusu görüntüler benim background.js, content_script.js, vb. Ile aynı klasördedir. Bu yüzden, yolun sadece yanlış okunup okunmadığından emin değilim. .
DÜZENLEME: Konsolu açtım ve "browserAction.setIcon: Simge geçersizken" unchecked runtime.lastError iletisini alıyorum. Ne anlama geliyor? C: \ Users ... \ blue-logo'dan başlayarak tam yolu belirtirseniz, hata iletisini bulamıyorum.
... önerilen boyut 128x128px olduğunu/manifest/icons – wodka
Bu büyük upvotes olmalı :) – SuperNOVA