2010-05-04 9 views
28

मैं एक साधारण क्रोम एक्सटेंशन पर अपने हाथों की कोशिश कर रहा हूं, लेकिन सरणी के लिए सरणी के लिए मूल्य प्रदान करने में समस्या का सामना कर रहा हूं।क्रोम एक्सटेंशन मैनिफेस्ट 'मैच'

{ 
    "name": "My Extension", 
    "version": "1.0", 
    "description": "My Extension Experiment", 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_title": "Ext", 
    "default_popup": "popup.html" 
    }, 
    "content_scripts": { 
    "matches": ["http://*"], 
    "js": ["scripts.js"] 
    } 
} 

जब मैं क्रोम में इस विस्तार को लोड करने की कोशिश, मैं निम्न संदेश मिलता है: ': \ Users \ foo \ डेस्कटॉप \ एक्सटेंशन \ बार सी'

से विस्तार लोड नहीं कर सका।
'content_scripts' के लिए अमान्य मान।

मैं नहीं देख सकता कि मेरे मूल्य के बारे में "अमान्य" क्या है। जो मैं करने की कोशिश कर रहा हूं वह हर यूआरएल से मेल खाता है, इसलिए मेरा एक्सटेंशन किसी भी पेज के चलते डीओएम (scripts.js के भीतर जावास्क्रिप्ट के माध्यम से) में हेरफेर कर सकता है। क्या मुझे कुछ याद आ रहा है, यह सब गलत है, या क्या?

"content_scripts": [{ 
    "matches": ["http://*"], 
    "js": ["scripts.js"] 
}] 

यही जा रहा है:

अद्यतन

इस प्रश्न पोस्ट करने के बाद, मैं उनके वाक्य विन्यास को प्रतिबिंबित करने के नोटिस किया है कि गूगल उदाहरण मेरा की तुलना में थोड़ा अलग था, इसलिए मैं अपने कोड को संशोधित किया एक सा

'सी से विस्तार लोड नहीं कर सका:: \ Users \ foo \ डेस्कटॉप \ पूर्व कहा, मैं अभी भी जब मेरे विस्तार को लोड करने की कोशिश कर रहा निम्नलिखित त्रुटि मिलती है तनाव \ बार '।
'content_scripts [0] .matches [0]' के लिए अमान्य मान। सभी के लिए एक बेहतर मैच होगा

"content_scripts": [ { 
    "matches": ["http://*"], 
    "js": ["scripts.js"] 
} ] 

(देखना अधिक जानकारी के लिए Chrome Docs) संयोग से, http://*/* का उपयोग कर:

+0

मैं एक ही त्रुटि प्राप्त किया गया था, लेकिन मैं लिखने '" मैच "' कुंजी havne't। जहाँ मैं क्रोम डेवलपर दस्तावेज़ जो क्षेत्र के लिए आवश्यक हैं, जबकि 'content_scripts' – diEcho

उत्तर

45

आप वर्ग कोष्ठक में content_scripts फ़ील्ड का मान चारों ओर की जरूरत है यूआरएल (docs देखें), https://*/* जोड़कर यदि आपको उनसे मिलान करने की भी आवश्यकता है।

संपादित करें:

अपने संपादित के बाद, त्रुटि मिल रहा है खाने वाला पैटर्न गलत किया जा रहा है की वजह से है।

+0

बनाने मैं' http देखा देख पा रहे हैं: // */* 'पैटर्न है, लेकिन चिंता है कि यह एक'/'के बाद के लिए यूआरएल की आवश्यकता होगी था' http: // 'मेरे एक्सटेंशन को चलाने के लिए। क्या यह गलत है? – Aristotle

+0

पैटर्न मिलान पर दस्तावेज़ पृष्ठ (http://code.google.com/chrome/extensions/match_patterns.html) इसे विस्तार से समझाएं। मैंने जो भी एक्सटेंशन देखा है, वे बिना किसी समस्या के 'http: // */*' पैटर्न का उपयोग करते हैं। – adrianbanks

+0

हां। मैंने अपने प्रश्न पूछने से पहले इस पृष्ठ को बस कुछ क्षण देखा। लेकिन उनकी उदाहरण 'http से पता चलता: // */*' मिलान के रूप में 'http: // www.google.com /' जो मुझे वजह से विश्वास है कि एक यूआरएल 'http से जुड़े लोगों के बाद एक आगे स्लैश होना चाहिए: // 'मेरे विस्तार तर्क का आह्वान करने के लिए। – Aristotle

34

आप हर URL से मेल करना चाहते हैं, तो गूगल केवल इस उद्देश्य के लिए एक विशेष पैटर्न है: <all_urls>

नमूना उपयोग: https://developer.chrome.com/extensions/match_patterns

+2

बहुत अच्छा, मुझे इसके बारे में पता नहीं था। हालांकि प्रासंगिक दस्तावेज की तलाश में उन लोगों के लिए, लिंक वास्तव में है: http://code.google.com/chrome/extensions/match_patterns.html – npdoty

+2

इस एक से पहले चुना जवाब में code.google.com लिए सभी लिंक और सभी टिप्पणियां साइट रीर्ग के बाद टूटा हुआ है। मैंने चुने हुए उत्तर को स्वयं काम करने वाले लिंक के साथ तय कर दिया है। – ack

2
:

"matches": ["<all_urls>"], 

अधिक जानकारी के लिए इस पेज देखें

कई लोगों के लिए है कि हो रही है को शामिल त्रुटियों:

'content_scripts[0].matches' is missing or invalid. 

या

'content_scripts[0].matches[0]': Empty path. 

कोशिश कर रहा है में भरने, या , आवश्यकता होने पर अपनी विशिष्ट यूआरएल के साथ मैच क्षेत्र का निर्माण। आप उन सभी URL का उपयोग करना चाहते हैं, तो नीचे की तरह <all_urls> टैग का उपयोग करें।

"content_scripts": [ 
     { 
      "matches": ["<all_urls>"], 
      "js": [ "jquery.js" ] 
     } 
    ] 

"जेएस" सरणी में सूचीबद्ध फ़ाइलों के पास आपके पथ से संबंधित पथ है। दूसरे शब्दों में, "manifest.json" का स्थान आपकी मूल निर्देशिका है।

नोट: jquery.js अपने प्रोजेक्ट की निर्देशिका में एक फाइल है और आप आप चाहते हैं जो कुछ भी स्क्रिप्ट फ़ाइल से बदलने चाहिए।

संबंधित मुद्दे