জাভাস্ক্রিপ্ট ব্যবহার করে jquery লোড করা হচ্ছে কিনা তা পরীক্ষা করা হচ্ছে


176

আমি জেকারি লাইব্রেরিটি আমার এইচটিএমএল পৃষ্ঠাতে লোড হয়েছে কিনা তা খতিয়ে দেখার চেষ্টা করছি। এটি কাজ করে কিনা তা পরীক্ষা করে দেখছি, তবে কিছু ঠিক নেই। আমার যা আছে তা এখানে:

<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
"$ (দস্তাবেজ) এ মূলধন আর ব্যবহার করবেন না R রেডি"
সেরিগান

7
alert(window.$?1:0)
থাইলিসিয়াস

আপনি এখনও কেন পুরানো এক্সএইচটিএমএল মান ব্যবহার করছেন? কেবল <!doctype html>পরিবর্তে ব্যবহার করুন
দ্য গীক

যদি $(document)প্রস্তুত ফাংশনটি মোটেও চলে, তবে jquery লোড হয়। সুতরাং আপনি কেবল $(document).ready(function(){ alert("Ready!"); }); মঞ্জুর করতে পারেন , যদি জকিউরি চালাতে ব্যর্থ হয় তবে এটি একটি সতর্কতা প্রদর্শন করবে না। তবে এটি যথেষ্ট, যদি আপনার কেবল যাচাইয়ের দরকার হয় যা আপনি jquery লাইব্রেরিতে সঠিকভাবে উল্লেখ করেছেন।
স্টিভ

উত্তর:


338

কিছু একটা ঠিক নেই

ভাল, আপনি 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
gille3

@ গিলি 3: হ্যাঁ, সমস্যাযুক্ত স্কোপিংয়ের সমস্যা। সংশোধন করা হয়েছে।
BoltClock

আমার এইচটিএমএল ফাইলের মতো একই ডিরেক্টরিতে jquery-1.6.3.min.js ফাইল রয়েছে। কেন এটি লোড হয় না তা নিশ্চিত।
সফটওয়্যারসভ্যান্ট

3
@ ডোমেনএভেন্ট: এরা দুজনেই কি মূল ডিরেক্টরিতে রয়েছে? আপনার srcএকটি নেতৃস্থানীয় রয়েছে /, এর অর্থ এটি মূলে রয়েছে।
BoltClock

আসলে না. আমাকে এটি পরিবর্তন করতে এবং এটি একটি শট দিন।
সফটওয়্যারসভেন্ট

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
@ জ্যাকএন একটি নির্দিষ্ট সময়ের পরে, পোস্টটি সম্পাদনা না করা হলে ডাউনভোটগুলি পূর্বাবস্থায় ফেরানো যাবে না। এই পোস্টে একটি সমস্যা রয়েছে, যদিও: 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কনসোলে টাইপ করতে পারেন । যদি এটি কোনও ফাংশন (e, n) ফিরিয়ে দেয় ... তবে এটি নিশ্চিত হয়ে গেছে যে jquery লোড হয়েছে এবং সফলভাবে কাজ করছে।


-4

একটি দ্রুত উপায় হ'ল বিকাশকারী কনসোলে একটি jQuery কমান্ড চালানো। যে কোনও ব্রাউজারে F12 চাপুন এবং যে কোনও উপাদান অ্যাক্সেস করার চেষ্টা করুন।

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

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.