मैं एक जावास्क्रिप्ट विजेट विकसित कर रहा हूं जो jQuery पर निर्भर करता है। विजेट को उस पृष्ठ पर लोड किया जा सकता है या नहीं जिसे पहले से ही jQuery लोड किया गया है। इस मामले में कई समस्याएं आ रही हैं ...जावास्क्रिप्ट विजेट को एम्बेड करने के लिए कैसे करें जो अज्ञात वातावरण में jQuery पर निर्भर करता है
यदि वेब पेज में jQuery नहीं है, तो मुझे अपना स्वयं का jQuery लोड करना होगा। हालांकि, ऐसा करते समय एक नाजुक समय मुद्दा लगता है। उदाहरण के लिए, यदि मेरा विजेट लोड होने और निष्पादित करने से पहले मेरा विजेट लोड और निष्पादित करता है, तो मुझे
jQuery is not defined
त्रुटि मिलती है।यदि वेब पेज में jQuery है, तो मैं आमतौर पर इसके साथ काम कर सकता हूं। यदि jQuery संस्करण पुराना है, हालांकि, मैं अपना खुद का लोड करना चाहता हूं। अगर मैं अपना खुद का भार लेता हूं, हालांकि, मुझे ऐसा करने की ज़रूरत है कि वे अपने
$
चर पर स्टंप न करें। अगर मैंjQuery.noConflict()
सेट करता हूं और उनकी कोई भी स्क्रिप्ट$
पर निर्भर करती है, तो मैंने अभी अपना पृष्ठ तोड़ दिया है।यदि वेब पेज किसी अन्य जावास्क्रिप्ट लाइब्रेरी (उदा। प्रोटोटाइप) का उपयोग करता है, तो मुझे प्रोटोटाइप के
$
चर के संवेदनशील होने की आवश्यकता होती है।
उपर्युक्त सभी के कारण, यह jQuery पर निर्भर नहीं है। लेकिन इससे पहले कि मैं उस सड़क पर जाउंगा, जिसमें ज्यादातर मेरे विजेट कोड को फिर से लिखना शामिल होगा, मैं पहले सलाह मांगना चाहता था।
मेरी कोड के बुनियादी कंकाल, समय बग और कभी कभी $
कीड़े सहित, इस प्रकार है:
<script type="text/javascript" charset="utf-8">
// <![CDATA
if (typeof jQuery === 'undefined') {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '{{ URL }}/jquery.js';
head.appendChild(script);
}
// ]]>
</script>
<script type="text/javascript" src="{{ URL }}/widget.js"></script>
मेरे विजेट निम्नलिखित संरचना है:
(function($) {
var mywidget = {
init: function() {
...
}
};
$(document).ready(function() {
mywidget.init();
});
})(jQuery);
अगर कोई संकेत या संसाधन हैं एक विजेट प्राप्त करने के लिए जो सभी उल्लिखित वातावरण में काम कर सकता है, उनकी बहुत सराहना की जाएगी।
टेक्स्ट-बुक गुणवत्ता का उत्तर! – bjornl
उससे बेहतर नहीं मिलता है, इच्छा है कि मैं और अंक दे सकता हूं! –
बहुत अच्छा, बहुत बहुत धन्यवाद। – TimDog