Я делаю расширение chrome, а расширение имеет два режима: всегда включено (alwaysOn
) или только когда пользователь нажимает на него (onClick
). Я хочу, чтобы значок был синим или красным в зависимости от режима пользователя, поэтому они могут увидеть его с первого взгляда. Однако после добавления строки chrome.browserAction.setIcon()
значок по-прежнему не изменяется, когда это необходимо. Он просто остается на логотипе по умолчанию.chrome.browserAction.setIcon ничего не делает
Вот мои 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){});
});
}
});
}
});
Все остальное прекрасно работает, и console.log() не показывает каких-либо ошибок. Есть ли какая-нибудь причина, по которой javascript будет «пропускать» эти конкретные строки кода? («Эти конкретные строки кода» являются chrome.browserAction.setIcon({path: "blue-logo.png"});
и chrome.browserAction.setIcon({path: "red-logo.png"});
). Изображения, о которых идет речь, находятся в той же папке, что и мои background.js, content_script.js и т. Д., Поэтому я не уверен, что путь просто читается неправильно или что ,
EDIT: Я открыл консоль и получил сообщение «Unchecked runtime.lastError при запуске браузераAction.setIcon: значок недействителен». Что это значит? Если я укажу полный путь, начиная с C: \ Users ... \ blue-logo «Я не могу найти сообщение об ошибке.
изменения размера значков работали для меня, как хорошо ... рекомендуемого размера 128x128px: https://developer.chrome.com/extensions/manifest/icons – wodka
Это должно иметь огромные upvotes :) – SuperNOVA