2011-10-04 11 views
7

मैं एक Chrome एक्सटेंशन निम्न कार्य करने की आवश्यकता है लिख रहा हूँ पर चलते हैं:Chrome एक्सटेंशन: सामग्री स्क्रिप्ट के सभी पृष्ठों पर चलाने के लिए, और केवल करने के लिए एक और एक पेज

  • (वर्तमान में एक सामग्री स्क्रिप्ट इंजेक्षन कोई है) पेज जब पॉपअप आग
  • एक अलग सामग्री स्क्रिप्ट के लिए एक विशिष्ट डोमेन के सभी पृष्ठों में

अब तक मैं पहली बार एक को लागू किया है, तो निम्न इंजेक्षन, हमेशा popup.html फ़ाइल में chrome.tabs.executeScript() बुला और होने से अनुमति देने के लिए प्रकट में स्क्रिप्ट किसी भी पृष्ठ पर चलाने के लिए:

"permissions": [ 
    "tabs", "http://*/*" 
], 
अब

, http://code.google.com/chrome/extensions/content_scripts.html के अनुसार, अगर मैं एक सामग्री स्क्रिप्ट हमेशा एक विशेष पृष्ठ पर चलाना चाहते हैं, मैं प्रकट और अनुमतियां सेट में यह घोषित करना चाहिए केवल पृष्ठों शामिल करने के लिए कि कोड चालू होना चाहिए। हालांकि, यह पहला हिस्सा तोड़ देगा।

मैं इसे कैसे हल करूं? एकमात्र तरीका मैं सोच सकता हूं कि हमेशा किसी प्रकार की "कॉलर" स्क्रिप्ट को कॉल करना है जो उसके बाद अपनी स्क्रिप्ट और अन्य स्क्रिप्ट की लोडिंग करता है, लेकिन यह बहुत गन्दा लगता है, और मुझे लगता है कि एक बेहतर तरीका है।

+0

धन्यवाद! मुझे लगता है कि बाद के एक ही अस्तित्व में :) – Mala

उत्तर

12
{ 
    "content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*"], 
     "js": ["myscript.js"] 
    } 
    ], 
    "permissions": [ 
    "tabs", "http://*/*" 
    ] 
} 

myscript.js स्वचालित रूप से google.com पर इंजेक्ट किया जाता है, आप अब भी http://*/* को इंजेक्षन कर सकते हैं। टैग फिक्सिंग के लिए

+0

त्वरित अनुवर्ती प्रश्न जानकारी नहीं थी - 'myscript.js' विस्तार के बाकी के रूप में ही localStorage के लिए उपयोग नहीं है। यदि मैं एक्सटेंशन में एक विशेष विकल्प (स्थानीय स्टोरेज में संग्रहीत) सेट करता हूं तो मैं वास्तव में केवल 'myscript.js' को चलाने के लिए चाहता हूं ... मैं यह कैसे करूँगा? – Mala

+1

@ माला आपको पृष्ठभूमि पृष्ठ पर एक अनुरोध भेजने की आवश्यकता होगी, वहां स्थानीय स्टोरेज पढ़ें, और परिणाम वापस पास करें। Http://code.google.com/chrome/extensions/dev/messaging.html – serg

+0

भयानक देखें, धन्यवाद, यह काम कर रहा है :) मैं केवल चाहता हूं कि फ़ायरफ़ॉक्स एक्सटेंशन – Mala

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

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