কোনও জিকুয়েরি প্লাগইন লোড হয়েছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?


221

কোনও নির্দিষ্ট প্লাগইন পাওয়া যায় কিনা তা পরীক্ষা করার কোনও উপায় আছে কি?

কল্পনা করুন যে আপনি এমন একটি প্লাগইন বিকাশ করছেন যা অন্য একটি প্লাগইন লোড হচ্ছে তার উপর নির্ভর করে।

উদাহরণস্বরূপ, আমি চাই যে jQuery বৈধতা প্লাগইনটি দেওয়া তারিখটি বৈধ কিনা তা পরীক্ষা করতে ডেটজেএস গ্রন্থাগারটি ব্যবহার করে। ডেটজেএস উপলভ্য থাকলে jQuery ভ্যালডেশন প্লাগইনে, সনাক্ত করার সর্বোত্তম উপায় কী হবে?



উত্তর:


364

সাধারণভাবে বলতে গেলে, jQuery প্লাগইনগুলি jQuery স্কোপের নেমস্পেস। নাম স্থানটি বিদ্যমান কিনা তা দেখতে আপনি একটি সাধারণ চেক চালাতে পারেন:

 if(jQuery().pluginName) {
     //run plugin dependent code
 }

ডেটজেগুলি তবে jQuery প্লাগইন নয়। এটি জাভাস্ক্রিপ্টের তারিখ অবজেক্টটি সংশোধন / প্রসারিত করে এবং jQuery নেমস্পেস হিসাবে যুক্ত করা হয় না। আপনার প্রয়োজনীয় পদ্ধতিটি বিদ্যমান কিনা তা আপনি পরীক্ষা করতে পারেন, উদাহরণস্বরূপ:

 if(Date.today) {
      //Use the dateJS today() method
 }

তবে আপনি এমন সমস্যাগুলির মধ্যে দৌড়াতে পারেন যেখানে এপিআই নেটিভ ডেট এপিআইকে ওভারল্যাপ করে।


63
if (jQuery.fn.pluginName) {... another অন্য বিকল্প
নাগিমন

6
কিছুটা ওভারকিল হতে পারে তবে if ($.isFunction(jQuery.fn.pluginName)) { ... }এটি কমপক্ষে কোনও ফাংশনও নিশ্চিত করবে।
নয়েও

আমার একটি ফাংশন রয়েছে যা স্ক্রিপ্টটি লোড করে, `লোডস্ক্রিপ্ট (অবস্থান, নেমস্পেকি, কলব্যাক)`, কলব্যাক ফাংশন একটি বিরতি অধীনে warped হয়, নামপ্লেস অর্থাৎ window.jQueryকলব্যাক সেট না করা পর্যন্ত এটি কাজ করে তবে এখন আমি এটিতে চেষ্টা করছি এজে ক্যোয়ারী প্লাগইন লোড করুন এবং এটি যাচাই করার জন্য, আমাকে jquery সিলেক্ট ফাংশনটি পছন্দ করতে হবে jQuery().pluginName, তবে আমি যখন এটি পাস করি তখন আমার ফাংশন প্যারামিটারের মতো LoadScript("jquery+plugin.js",jquery().plugin)jquery () ডোজটি এখনও উপস্থিত নেই
হাসান নিসার খান

97

যদি আমরা একটি সঠিক jQuery প্লাগইন (fn নেমস্পেস প্রসারিত এক) সম্পর্কে কথা বলি, তবে প্লাগইন সনাক্ত করার সঠিক উপায়টি হ'ল:

if(typeof $.fn.pluginname !== 'undefined') { ... }

অথবা যেহেতু প্রতিটি প্লাগইন কিছুটা সত্যের সাথে সমান হয় তার গ্যারান্টিযুক্ত, আপনি সংক্ষিপ্ত ব্যবহার করতে পারেন

if ($.fn.pluginname) { ... }

বিটিডাব্লু, $ এবং জিক্যুয়েরি মতবিনিময়যোগ্য, যেমন একটি প্লাগইনটির চারপাশে বিজোড় চেহারার মোড়ক প্রদর্শন করে:

(function($) {
    //
})(jQuery))

বন্ধ

(function($) {
    //
})

প্যারামিটার হিসাবে সেই "ক্লাসিং" jQuery কে বন্ধ করার সাথে সাথেই তার কল আসে

(jQuery)

বন্ধে j jQuery এর সমান সেট করা হয়েছে


2
আমি একটি ফাংশন করেছিfunction isPluginLoaded(plugin) { return !!$.fn[plugin] }
স্টাইল স্টাইল

2
প্রথম উদাহরণ হওয়া উচিতif(typeof $.fn.pluginname != 'undefined')
dops

1
@ ডপস সঠিক এবং আমি সেই অনুসারে উত্তরটি সম্পাদনা করেছি, যদিও আমি টাইপ এবং মান উভয়ের তুলনায় দ্বিগুণ সমান সমতার চেয়ে একটি অবহেলিত ট্রিপল ব্যবহার করেছি।
pwdst

1
$এবং সর্বদা বিনিময়যোগ্য jQueryহয় না , কারণ jQuery কোনও বিরোধ-মোডে লোড হওয়া (যেমন ওয়ার্ডপ্রেস হিসাবে) হতে পারে । এটি আমাকে সর্বদা শর্টহ্যান্ড, দ্বন্দ্ব-নিরাপদ নথি প্রস্তুত করতে ব্যবহার করেছে: বা, যেমন আপনি উল্লেখ করেছেন, ক্লোজার প্যাটার্ন: আমার মেজাজ / প্রয়োজনের উপর নির্ভর করে। (বিটিডাব্লু, উপবিষ্টিত, আপনার চেক হিসাবে যা প্রস্তাবিত তা হ'ল আমার jQuery(function($) { // $ is safe in here.... });(function($) { // $ is safe in here.... })(jQuery);
পছন্দের

11

JQuery প্লাগইন সনাক্ত করতে আমি বন্ধনী ব্যবহার করার জন্য আরও সঠিক খুঁজে পেয়েছি:

if(jQuery().pluginName) {
    //run plugin dependent code
}

8

যে প্লাগইনগুলি এফএন নেমস্পেস ব্যবহার করে না (উদাহরণস্বরূপ পোটাইফাই), এটি কাজ করে:

if($.pluginname) {
    alert("plugin loaded");
} else {
    alert("plugin not loaded");
}

এটি কাজ করে না:

if($.fn.pluginname)

ধন্যবাদ। আর একটি উদাহরণ -
জ্যাকারি

2

jQuery এর কিছু ফাংশন কিনা তা যাচাই করার জন্য একটি পদ্ধতি রয়েছে

if ($.isFunction($.fn.dateJS)) {
    //your code using the plugin
}

এপিআই রেফারেন্স: https://api.jquery.com/jQuery.isFunction/


1

আমি দৃ strongly়ভাবে সুপারিশ করব যে আপনি আপনার প্লাগইন সহ ডেটজেএস গ্রন্থাগারটি বান্ডিল করুন এবং আপনি যে কাজটি করেছেন তা নথিভুক্ত করুন। নির্ভরতা সন্ধান করার চেয়ে কিছুই হতাশার মতো নয়।

এটি বলেছে, আইনী কারণে আপনি সবসময় বান্ডিল করতে সক্ষম নাও হতে পারেন। এছাড়া ব্যাথা না সতর্ক হতে হবে এবং ব্যবহার প্লাগইন অস্তিত্ব জন্য চেক করতে Eran Galperin এর উত্তর


1

আপনার পছন্দসই ব্রাউজার কনসোলে এটি চালান।

if(jQuery().pluginName){console.log('bonjour');}

প্লাগইন উপস্থিত থাকলে এটি আপনার কনসোলের প্রতিক্রিয়া হিসাবে "বোনজর" মুদ্রণ করবে।


-1

এই ধরণের পদ্ধতির কাজ করা উচিত।

var plugin_exists = true;

try {
  // some code that requires that plugin here
} catch(err) {
  plugin_exists = false;
}

6
আপনি সহজেই কী আবিষ্কার করতে পারেন (এবং হওয়া উচিত) ধরার জন্য প্রায়
লোভনীয় হওয়ার প্রলোভন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.