টুইটার বুটস্ট্র্যাপ লোড হয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


86

পৃষ্ঠাতে কোনও বুটস্ট্র্যাপ.জেএস লোড আছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি (কোনও ফাইল বুটস্ট্র্যাপ.জেএস অন্য কোনও বড় জেএস ফাইলের মধ্যে সংকলিত হতে পারে)?

উত্তর:


125

আপনার কেবলমাত্র বুটস্ট্র্যাপ-নির্দিষ্ট পদ্ধতি উপলভ্য কিনা তা যাচাই করে নেওয়া উচিত। আমি এই উদাহরণটিতে মডেল ব্যবহার করব (বুটস্ট্র্যাপ 2-4 এর জন্য কাজ করে):

// Will be true if bootstrap is loaded, false otherwise
var bootstrap_enabled = (typeof $().modal == 'function');

এটি স্পষ্টতই 100% নির্ভরযোগ্য নয় যেহেতু একটি মডেল ফাংশন একটি ভিন্ন প্লাগইন সরবরাহ করতে পারে তবে তা কাজটি করবে ...

আপনি আরও সুনির্দিষ্টভাবে বুটস্ট্র্যাপ 3-4 দেখতে পারেন (3.1+ হিসাবে কাজ করে):

// Will be true if Bootstrap 3-4 is loaded, false if Bootstrap 2 or no Bootstrap
var bootstrap_enabled = (typeof $().emulateTransitionEnd == 'function');

নোট করুন যে এই সমস্ত চেকের জন্য ইতিমধ্যে জিকুয়েরি লোড হওয়া দরকার


ধন্যবাদ! স্থানীয় ফ্যালব্যাক সহ সিডিএনজেএস থেকে বুটস্ট্র্যাপ লোড করার জন্য খুব সহজ
ptim

4
আপনার পাশাপাশি কিছু ব্যবহার করা উচিত .modal..... উদাহরণ সহ পুরো জায়গা জুড়ে মিথ্যা ইতিবাচক।
ধাউপিন

হ্যাঁ মিথ্যা ইতিবাচক সম্ভাবনা রয়েছে, এটি সত্য। দুর্ভাগ্যক্রমে সবচেয়ে সম্ভাব্য চেকগুলির নামটি মোটামুটি সাধারণভাবে বুটস্ট্র্যাপে নামকরণ করা হয়েছে, সুতরাং এই সমস্যাটি এড়ানো কঠিন, তবে সম্ভবত আরও অস্পষ্ট একটি স্ক্রোলস্পাই.নো কনফ্লিক্ট। সুতরাং স্ক্রোলস্পি এবং নো কনফ্লিক্ট উভয়ই উপস্থিত রয়েছে তা যাচাই করা মিথ্যা ধনাত্মক হওয়ার ঝুঁকিপূর্ণ হতে পারে। এটিকে আরও নির্ভরযোগ্য করে তোলার জন্য আপনি বিভিন্ন চেক একত্রিত করতে পারেন।
অ্যারন

4
বেশিরভাগ অংশের জন্য কাজ করা উচিত তবে প্যাকেজগুলির মধ্যে ক্লান্ত থাকতে হবে যাতে অভিন্ন নাম সহ jQuery প্লাগইন অন্তর্ভুক্ত রয়েছে।
আদম এফ

4
@ অ্যারন আমি এই var বুটস্ট্র্যাপ_এনবলড = (টাইপফ $ ()। মডেল == 'ফাংশন') ব্যবহার করার চেষ্টা করেছি; এটি jquery ছাড়াই কীভাবে ব্যবহার করবেন? আমার jquery বুটস্ট্র্যাপ চেক করার সময় লোড হয় না তাই এটি আমাকে $ অপরিজ্ঞাত ত্রুটি দিচ্ছে।
iit2011081

25

আমি বরং নির্দিষ্ট বুটস্ট্র্যাপ প্লাগইন পরীক্ষা করে দেখি যেহেতু মডেল বা টুলটিপ খুব সাধারণ, তাই

if(typeof($.fn.popover) != 'undefined'){
 // your stuff here
}

বা

 if (typeof $.fn.popover == 'function') { 
   // your stuff here
  }

উভয় বুটস্ট্র্যাপ সংস্করণে কাজ করে


আমি মনে করি এটি সেরা উত্তর এবং পুরো ফ্রেমওয়ার্কগুলি অনুসন্ধানের চেয়ে বৈশিষ্ট্য-সমর্থন নিয়ে উদ্বিগ্ন হওয়ার বর্তমান জাভাস্ক্রিপ্ট-চিন্তার সাথে সঙ্গতিপূর্ণ।
ফিল

5

if (typeof([?])=='undefined') { /*bootstrap is not loaded */}

যেখানে [?] এমন কোনও বস্তু বা নেমস্পেস হবে যা জেএস ফাইলের ভিতরেই সংজ্ঞায়িত হয়েছে।

জাভাস্ক্রিপ্টে "সহ" ধারণার অস্তিত্ব নেই।


6
উদাহরণস্বরূপif(typeof($.fn.modal) === 'undefined')
অফারমো

5

Https://github.com/netdna/bootstrap-cdn/issues/111#issuecomment-14467221 দেখুন

<script type="text/javascript">
    // <![CDATA[
    (function($){

        function verifyStyle(selector) {//http://stackoverflow.com/a/983817/579646
            var rules;
            var haveRule = false;

            if (typeof document.styleSheets != "undefined") {   //is this supported
                var cssSheets = document.styleSheets;

                outerloop:
                for (var i = 0; i < cssSheets.length; i++) {

                     //using IE or FireFox/Standards Compliant
                    rules =  (typeof cssSheets[i].cssRules != "undefined") ? cssSheets[i].cssRules : cssSheets[i].rules;

                     for (var j = 0; j < rules.length; j++) {
                         if (rules[j].selectorText == selector) {
                                 haveRule = true;
                                break outerloop;
                         }
                    }//innerloop

                }//outer loop
            }//endif

            return haveRule;
        }//eof

        <!-- BOOTSTRAP JS WITH LOCAL FALLBACK-->
        if(typeof($.fn.modal) === 'undefined') {document.write('<script src="<?=$path_js?>/bootstrap.min.js"><\/script>')}

        <!-- BOOTSTRAP CDN FALLBACK CSS-->
        $(document).ready(function() {

            if( verifyStyle('form-inline') )
            {
                $("head").prepend("<link rel='stylesheet' href='<?=$path_css?>bootstrap.min.css' type='text/css' media='screen'>");
            }
            else
            {
                //alert('bootstrap already loaded');
            }
        });
    })(jQuery);
    // ]]>
    </script>

jQuery নিরাপদ মোডের সাথে সামঞ্জস্যপূর্ণ,

আপনি যদি কাস্টম সিএসএস ব্যবহার করেন তবে সিএসএস চেকের জন্য টুইটের প্রয়োজন হতে পারে


4

আফাইক, সংক্ষিপ্ত উত্তর হল

টুইটার বুটস্ট্র্যাপ লোড হয়েছে কিনা তা সনাক্ত করা সম্ভব নয়

বিশদ

টুইটার বুটস্ট্র্যাপ মূলত সিএসএস এবং জ্যাকুরিতে জেএস প্লাগইনগুলির সেট। প্লাগিনের নামগুলি gener .fn.button এর মতো জেনেরিক এবং ব্যবহারের জন্য প্লাগইনগুলির সেটও কাস্টমাইজযোগ্য। কেবল নামে প্লাগইনের উপস্থিতি বুটস্ট্র্যাপ উপস্থিত রয়েছে তা নির্ধারণে সহায়তা করবে না।


2

আপনি পুনরুদ্ধার করতে পারেন <script> উপাদানগুলি এবং তাদের এসআরসি বৈশিষ্ট্যটি যাচাই তবে আপনি উল্লেখ করেছেন যে আপনি কোডটি যা খুঁজছেন তা হ'ল কোডটি এবং কোনও ফাইলের কোড হিসাবে ফাইলের নাম নয় file

কোনও জাভাস্ক্রিপ্ট পরিষেবা / শ্রেণি / ইত্যাদি সনাক্ত করার সেরা উপায়। একটি পৃষ্ঠায় লোড করা হয়, ডিওএম-তে এমন কিছু সন্ধান করা যা আপনি জানেন যে প্রদত্ত জেএস দ্বারা লোড করা হয়েছে।

যেমন jQuery লোড হয়েছে কিনা তা সনাক্ত করতে, আপনি করতে null !== window.jQueryবা লোড হওয়া jQuery এর সংস্করণটি খুঁজে পেতে পারেন,jQuery.prototype.jquery


0

আমি এটি এটি করার সবচেয়ে সহজ উপায়। যতদূর সিএসএস আমি নিশ্চিত যে এটি করার একটি সহজ উপায় আছে।

<script>typeof Alert !== 'undefined' || document.write('<script src="/js/bootstrap/bootstrap.min.js">\x3C/script>')</script>


-3

আপনি যদি কনসোলে এটি টাইপ করেন তবে এটি jQuery সংস্করণটিকে আউটপুট দেবে: console.log(jQuery().jquery);

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