2011-08-27 22 views
8

पर एक पुराना संस्करण पहले से ही क्रोम एक्सटेंशन सामग्री स्क्रिप्ट में jquery का उपयोग कैसे कर सकता हूं, तो मैं एक क्रोम एक्सटेंशन लिख रहा हूं जो किसी पृष्ठ के लेआउट के साथ झुका हुआ है। मैं ऐसा करने के लिए jQuery के नवीनतम संस्करण का उपयोग करना चाहता हूं।जब मैं पुराना संस्करण पहले से ही

प्रश्न में पृष्ठ में पहले से ही अपनी स्क्रिप्ट्स के हिस्से के रूप में jQuery का संस्करण 1.4.4 शामिल है।

अगर मैं jQuery के नए संस्करण में शामिल हैं, पेज लटका हुआ है। मैं jQuery का नवीनतम संस्करण कैसे शामिल कर सकता हूं ताकि यह केवल मेरी सामग्री स्क्रिप्ट के लिए उपलब्ध हो, और पृष्ठ पर पहले से ही स्क्रिप्ट को प्रभावित नहीं करता है?

उत्तर

6

यदि आप सामग्री जेपी के रूप में अपनी jquery इंजेक्ट करते हैं तो यह sandboxed होगा, आपको कोई विवाद नहीं होगा चाहे कोई मूल पृष्ठ क्या उपयोग कर रहा हो।

+0

_ "उदाहरण के लिए, एक सामग्री स्क्रिप्ट JQuery v1 और पेज शामिल हो सकते हैं शामिल हो सकते हैं JQuery v2, और वे एक दूसरे के साथ संघर्ष नहीं करेंगे। "_ – Eric

1

आप अनिवार्य रूप से इसकी No Conflict mode का उपयोग करने और बंद करने में अपने कोड को क्रियान्वित करते हुए jQuery संस्करणों भिन्न नाम स्थान सकते हैं। उदाहरण के लिए:

<script src="jquery-1.6.2.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    jq162 = jQuery.noConflict(true); 
    (function ($) { 
     $(function() { 
      // Your document ready code here 
     }); 
    })(jq162); 
</script> 

कृपया इस घोषणा ध्यान दें तो यह कहीं और पुन: उपयोग किया जा सकता है jq162 वैश्विक विस्तार के लिए उपलब्ध बनाता है। यदि आप स्थानीय रूप से jQuery के उदाहरण को गुंजाइश करना चाहते हैं, तो इसे var बनाएं।

+0

कोई कॉन्फ्लिक्ट अभी भी 'jQuery' चर को छोड़ देता है, है ना? – Eric

+0

तर्क 'सत्य' को 'noConflict()' से गुजरकर, यह दस्तावेज की मेरी समझ के लिए '$' और 'jQuery' चर के मूल दायरे को पुनर्स्थापित करता है। – lsuarez

+0

यह कहना है कि अगर मैं अस्पष्ट था, तो ऊपर दिए गए कॉल का उपयोग करते समय आपके प्रश्न का उत्तर "नहीं" है। एक्सडी (कैफीन की जरूरत है ...) – lsuarez

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