मैं क्रोम एक्सटेंशन बना रहा हूं, और एक्सटेंशन में दो मोड हैं: हमेशा (alwaysOn
) पर, या केवल जब उपयोगकर्ता इसे क्लिक करता है (onClick
)। मैं उपयोगकर्ता के मोड के आधार पर आइकन को नीला या लाल रंग में बदलना चाहता हूं, इसलिए वे इसे एक नज़र में देख सकते हैं। हालांकि, chrome.browserAction.setIcon()
लाइन जोड़ने के बाद, जब भी इसकी आवश्यकता होती है तो आइकन अभी भी नहीं बदलता है। यह सिर्फ डिफ़ॉल्ट लोगो पर रहता है।chrome.browserAction.setIcon कुछ भी नहीं कर रहा है
// 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() किसी भी त्रुटि प्रदर्शित नहीं करता है:
यहाँ मेरी background.js है। क्या कोई कारण जावास्क्रिप्ट कोड की इन विशेष पंक्तियों को "छोड़ना" होगा? ("कोड की ये विशेष पंक्तियां" chrome.browserAction.setIcon({path: "blue-logo.png"});
और chrome.browserAction.setIcon({path: "red-logo.png"});
) प्रश्न में छवियां मेरी पृष्ठभूमि.जेएस, content_script.js, आदि के समान फ़ोल्डर में हैं इसलिए मुझे यकीन नहीं है कि पथ को गलत पढ़ा जा रहा है या क्या ।
संपादित करें: मैंने कंसोल खोला और मुझे संदेश "अनचेक रनटाइम .lastError ब्राउज़र चलाते समय एक्शन.सेट आइकन: आइकन अमान्य।" इसका क्या मतलब है? यदि मैं सी: \ उपयोगकर्ता ... \ blue-logo से शुरू होने वाला पूरा पथ निर्दिष्ट करता हूं "मुझे त्रुटि संदेश नहीं मिला।
आइकन के रूप में अच्छी तरह से मेरे लिए काम किया आकार बदलने ... अनुशंसित आकार है 128x128px: https://developer.chrome.com/extensions/manifest/icons – wodka
इसमें भारी अपवर्त होना चाहिए :) – SuperNOVA