मैं उपयोगकर्ता को यह तय करना चाहता हूं कि वे कब एक स्क्रिप्ट चलाने के लिए चाहते हैं, ताकि जब ब्राउज़र खुलता है, तो "ऑफ" आइकन दिखा रहा है और कोई स्क्रिप्ट नहीं चलती है; लेकिन जब उपयोगकर्ता इसे क्लिक करता है, तो यह "चालू" आइकन में बदल जाता है और उपयोगकर्ता द्वारा बंद होने तक उपयोगकर्तास्क्रिप्ट निष्पादित करता है। मेरे पास दो पीएनजी आइकन हैं जो 32x32 प्रत्येक हैं: on.png
और off.png
।क्रोम एक्सटेंशन के लिए बटन/आइकन कैसे चालू/बंद करें?
मेरे दो सवाल:
मैं अपने off.png को डिफ़ॉल्ट आइकन सेट कर सकते हैं?
... "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"] ...
यहाँ मेरी
background.js
, जहां मैं अस्थायी रूप से प्रयास करने के लिए एक त्वरित समारोह बना दिया गया है: मैं अपनेmanifest.json
में यह करने की कोशिश की लेकिन यह आइकन निर्धारित नहीं किया है, बजाय एक पहेली टुकड़ा (मैं एक डिफ़ॉल्ट मान) से पता चला और/बंद के आधार पर टॉगल करके चालू एकonClicked
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(); });
(मैं उल्लेख करना चाहिए कि जब मैं फ़ोल्डर आवास मेरी स्क्रिप्ट, माउस और में "लोड विस्तार अनपैक" प्रकट लोड करें और फिर "विचारों का निरीक्षण " सेवा मेरे जांचें कि क्या कुछ भी गलत है, मैं पृष्ठभूमि.जेएस में Uncaught SyntaxError: Unexpected token :
देखता हूं, हालांकि मुझे नहीं पता कि यह किस बात का जिक्र कर रहा है) ... और ऐसा लगता है कि यह स्क्रिप्ट फ़ोल्डर
तो में मेरी उपयोगकर्तास्क्रिप्ट दिखाना प्रतीत नहीं होता है , कोई विचार, मदद?
@tempcode मैं बस से पहले अपने कोड नकल की थी, लेकिन जब मैं इसे देख फिर मैं देखता हूं कि आपने '{}' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' {'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''~~~~~~~~~~~~~~~~~ ' – BeardFist
ठीक है कि बाधा कूद गई, हम लगभग वहाँ हैं। उस फिक्स ने मुझे ऑफ से चालू करने की अनुमति दी * (मेरे पहले परीक्षण पर मुझे सामना करना पड़ा '' एक्सटेंशन मेनिफेस्ट को इस होस्ट तक पहुंचने के लिए अनुमति का अनुरोध करना चाहिए "- चूंकि आपने 'मेनिफेस्ट' में 'सामग्री-स्क्रिप्ट' अनुभाग को हटाने का सुझाव दिया था, जहां मेरे पास था 'मैचों' और 'बहिष्कृत', मैंने उस त्रुटि को ठीक करने के लिए 'अनुमतियां' जोड़ दी हैं) *, लेकिन एक अंतिम मामूली समस्या है: एक बार जब मैं इसे चालू करता हूं तो मैं इसे चालू करने के लिए क्लिक नहीं कर सकता, यह बस "चालू रहता है "जब तक पृष्ठ को पुनः लोड नहीं किया जाता है (कम से कम हम जानते हैं कि अद्वितीय 'tab.id' काम करता है)। लेकिन उस तरफ, बाकी काम कर रहे हैं। अब तक आपकी मदद के लिए धन्यवाद! – tempcode
@tempcode ठीक है, तो ऐसा लगता है कि समस्या यह थी कि 'स्थिति' कुछ प्रकार का कीवर्ड है, इसलिए 'var status = false' ने' झूठा 'असाइन नहीं किया बल्कि '" गलत "' क्योंकि स्थिति पहले ही स्ट्रिंग होने के लिए परिभाषित की गई थी । वैरिएबल नाम को बदले में 'टॉगल' जैसे कुछ में बदलें। – BeardFist