2012-04-17 17 views
7

मैं क्रोम-एक्सटेंशन: // यूआरएल के साथ एक आईफ्रेम पर सामग्री स्क्रिप्ट चलाने के लिए चाहता हूं। मैं अपने manifest.json के लिए एक लाइन है कि मैं प्रलेखन http://code.google.com/chrome/extensions/match_patterns.htmlक्या सामग्री_स्क्रिप्ट "क्रोम-एक्सटेंशन: // */*" काम से मेल खाता है?

chrome-extension://*/* 

से बाहर की नकल की जोड़ा लेकिन जब मैं अपने एक्सटेंशन को पुनः लोड मैं एक चेतावनी मिलती है:

Could not load extension from '/work/sirius/extension'. 
Invalid value for 'content_scripts[2].matches[0]': Invalid scheme. 

किसी भी विचार कैसे काम करने के लिए इसे पाने के लिए ?

+0

जैसा कि @ कॉन्स्टेंटिन स्मोलिनिन के उत्तर में उल्लेख किया गया है, डॉक्यूमेंटेशन अब सामग्री स्क्रिप्ट को 'क्रोम-एक्सटेंशन:' पृष्ठों में इंजेक्ट करने की क्षमता के बारे में कुछ भी नहीं कहता है। –

उत्तर

7

नहीं। केवल ftp:, file:, http: और https: एक सामग्री स्क्रिप्ट घोषणा से मिलान किया जा सकता है।

matches और exclude_matches फ़ील्ड में अवैध URL पैटर्न अस्वीकार कर दिए गए हैं (एक्सटेंशन लोड करने का प्रयास करते समय त्रुटि उत्पन्न करना)।

permissions option in the manifest file पर अमान्य पैटर्न अनदेखा कर रहे हैं।

यदि आप अपने एक्सटेंशन से किसी टैब पर एक स्क्रिप्ट चलाने के लिए चाहते हैं, तो अपनी पृष्ठभूमि स्क्रिप्ट में chrome.extension.getViews का उपयोग करें। इससे भी बेहतर, अपने एक्सटेंशन के पृष्ठों को डिज़ाइन करें जैसे कि effectively communicate with each other(example)

+0

मैं एक वेब पेज में एक आईफ्रेम पर एक सामग्री स्क्रिप्ट चलाने के लिए चाहता हूँ। chrome.extension.getViews() एक्सटेंशन पर स्क्रिप्ट को अनुमति देता है, न कि वेब पेज। – johnjbarton

+0

मैं iframe पर एक पोस्ट मैसेज आधारित संचार तंत्र को कार्यान्वित कर रहा हूं, लेकिन iframe मेरा कोड नहीं है। तो मैं चाहता हूं कि content_scripts मुझे postMesssage() endpoint इंजेक्ट करने की अनुमति दें। – johnjbarton

+0

'मेनिफेस्ट फ़ाइल में अनुमति विकल्प' के उपरोक्त लिंक से मुझे प्रोग्रामैटिक स्क्रिप्ट इंजेक्शन का उपयोग करके जांच करने के लिए प्रेरित किया जाता है। दुर्भाग्य से यह या तो काम नहीं करेगा: क्रोम-एक्सटेंशन होस्ट करने वाला वेब ऐप: // iframe अपने आईफ्रेम में इंजेक्ट करने के लिए आवश्यक एक्सटेंशन कोड नहीं चला सकता है। जब टैब में एक मेल खाने वाला यूआरएल होता है तो शायद मैं प्रोग्रामेटिक रूप से इंजेक्ट करने के लिए एक अलग एक्सटेंशन लिख सकता हूं। – johnjbarton

8

मुझे एक ही समस्या है, एपीआई http://code.google.com/chrome/extensions/match_patterns.html पर यह स्पष्ट रूप से कहता है कि वे chrome-extension://*/* स्वीकार करते हैं, फिर भी वे नहीं करते हैं।

उन्हें एपीआई अपडेट करने की आवश्यकता है ताकि लोगों को भ्रमित न किया जा सके।

+2

दस्तावेज़ीकरण को सही करने के लिए एक खुली समस्या है: http://code.google.com/p/chromium/ मुद्दों/विवरण? आईडी = 153245 – rsanchez

+1

@ कोंस्टेंटिन स्मोलिनिन के रूप में नीचे दिए गए उत्तर के रूप में, दस्तावेज़ीकरण अद्यतन किया गया है। –

5

ऐसा लगता है कि क्रोम लेखकों ने सामग्री स्क्रिप्ट को chrome-extension: पृष्ठों में इंजेक्शन देने की क्षमता को चुपचाप हटा दिया है। Documentation अभी भी कहता है कि यह काम करता है और यहां तक ​​कि क्रोम-एक्सटेंशन के साथ उदाहरण भी शामिल हैं: योजना लेकिन वास्तव में यह काम नहीं करती है। तो अब केवल http:, https: और ftp: "बॉक्स से" और file: काम कर सकते हैं यदि आपके एक्सटेंशन के उपयोगकर्ता ने एक्सटेंशन (क्रोम: // एक्सटेंशन /) पृष्ठ पर इसे सक्षम किया है।

अद्यतन: अब ऊपर उल्लिखित दस्तावेज अपडेट किया गया है और chrome-extension: पृष्ठों पर सामग्री स्क्रिप्ट को इंजेक्ट करने की क्षमता के बारे में कुछ भी नहीं कहता है।

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