जाँच अगर जावास्क्रिप्ट जावास्क्रिप्ट का उपयोग कर भरी हुई है


176

मैं यह जांचने का प्रयास कर रहा हूं कि क्या मेरी Jquery लाइब्रेरी मेरे HTML पेज पर लोड है। मैं यह देखने के लिए जाँच कर रहा हूं कि क्या यह काम करता है, लेकिन कुछ सही नहीं है। यही सब कुछ मेरे पास है:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript" src="/query-1.6.3.min.js"></script>
        <script type="text/javascript">
          $(document).ready(function(){
             if (jQuery) {  
               // jQuery is loaded  
               alert("Yeah!");
             } else {
               // jQuery is not loaded
               alert("Doesn't Work");
             }
          });
        </script>

3
"$ (दस्तावेज़) .Ready" में एक राजधानी आर का उपयोग न करें
सेरिगन

7
alert(window.$?1:0)
थुलथुला

आप अभी भी पुराने xHTML मानक का उपयोग क्यों कर रहे हैं? <!doctype html>इसके बजाय उपयोग करें
ल्यूक द गीक

यदि $(document)तैयार फ़ंक्शन बिल्कुल चलता है, तो jquery लोड किया जाता है। तो आप बस कर सकते हैं $(document).ready(function(){ alert("Ready!"); }); , यह अगर jquery चलाने में विफल रहता है, तो यह एक चेतावनी नहीं दिखाएगा। लेकिन यह पर्याप्त है, अगर आपको बस यह सत्यापित करने की आवश्यकता है कि आपने सही ढंग से jquery पुस्तकालय को संदर्भित किया है।
टूलमेकरसैट

जवाबों:


338

कुछ सही नहीं है

ठीक है, आप jQuery की उपस्थिति की जाँच करने के लिए jQuery का उपयोग कर रहे हैं। यदि jQuery लोड नहीं है, तो $()यह बिल्कुल भी नहीं चलेगा और आपका कॉलबैक निष्पादित नहीं होगा, जब तक कि आप किसी अन्य लाइब्रेरी का उपयोग नहीं कर रहे हैं और लाइब्रेरी उसी $()सिंटैक्स को साझा करने के लिए होती है ।

अपना निकालें $(document).ready()( window.onloadइसके बजाय कुछ का उपयोग करें ):

window.onload = function() {
    if (window.jQuery) {  
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}

1
यह तब भी एक त्रुटि है जैसा jQueryकि अपरिभाषित है। आप के लिए जाँच की आवश्यकता है window.jQuery
gilly3

@ gilly3: हाँ, pesky scoping मुद्दों। फिक्स्ड।
BoltClock

मेरे पास jquery-1.6.3.min.js फ़ाइल html फ़ाइल के समान निर्देशिका में है। यकीन नहीं है कि यह क्यों लोड नहीं करता है।
सॉफ्टवेयरसवेंट

3
@DainainEvent: क्या वे दोनों रूट डायरेक्टरी में हैं? आपका srcएक अग्रणी है /, इसका मतलब है कि यह जड़ में दिख रहा है।
BoltClock

दरअसल नहीं। मुझे वह बदलने दो और एक शॉट दो।
SoftwareSavant

46

इस लिंक के अनुसार :

if (typeof jQuery == 'undefined') {
    // jQuery IS NOT loaded, do stuff here.
}


लिंक की टिप्पणियों में कुछ और भी हैं, जैसे,

if (typeof jQuery == 'function') {...}

//or

if (typeof $== 'function') {...}

// or

if (jQuery) {
    alert("jquery is loaded");
} else {
    alert("Not loaded");
}


आशा है कि इस बात को पूरा करने के लिए अधिकांश अच्छे तरीके शामिल हैं !!


2
@JakeN समय की एक निश्चित राशि के बाद, डाउनवोट्स को तब तक पूर्ववत नहीं किया जा सकता जब तक कि पोस्ट को संपादित नहीं किया जाता। इस पोस्ट के साथ एक समस्या है, हालांकि: if (jQuery) {jQuery लोड नहीं होने पर सख्त मोड में एक त्रुटि फेंक देगा, ताकि अंतिम कोड स्निपेट एक बुरा सुझाव हो।
JLRishe


15

अपने वेबपेज का निरीक्षण करते समय आप यह उपवास कंसोल-टैब पर कर सकते हैं।

उदाहरण के लिए:

$ === jQuery

यदि यह वापस आता है trueतो इसका मतलब है कि यह लोड है।


यदि jQuery लोड नहीं है, तो यह एक अपवाद Uncaught ReferenceError: jQuery is not defined
बढ़ाएगा

10

बस एक छोटा संशोधन जो वास्तव में समस्या को हल कर सकता है:

window.onload = function() {
   if (window.jQuery) {  
       // jQuery is loaded  
       alert("Yeah!");
   } else {
    location.reload();
   }
}

$(document).Ready(function()उपयोग के बजाय window.onload = function()


1

यदि jQueryअतुल्यकालिक रूप से लोड हो रहा है, तो आप इसे परिभाषित होने तक प्रतीक्षा कर सकते हैं, हर समय इसकी जाँच कर रहे हैं:

(function() {
    var a = setInterval( function() {
        if ( typeof window.jQuery === 'undefined' ) {
            return;
        }
        clearInterval( a );

        console.log( 'jQuery is loaded' ); // call your function with jQuery instead of this
    }, 500 );
})();

इस पद्धति का उपयोग किसी भी चर के लिए किया जा सकता है, आप दिखाई देने की प्रतीक्षा कर रहे हैं।


-2

आप बस window.jQueryकंसोल में टाइप कर सकते हैं । यदि यह एक फ़ंक्शन (ई, एन) लौटाता है ... तो यह पुष्टि की जाती है कि जक्वरी भरी हुई है और सफलतापूर्वक काम कर रही है।


-4

एक त्वरित तरीका डेवलपर कंसोल में एक jQuery कमांड चलाना है। किसी भी ब्राउज़र पर F12 मारा और किसी भी तत्व तक पहुंचने का प्रयास करें।

 $("#sideTab2").css("background-color", "yellow");

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.