ফ্ল্যাশ ইনস্টল করা আছে কিনা তা আমি কীভাবে সনাক্ত করতে পারি এবং যদি না হয় তবে ব্যবহারকারীকে অবহিত করা একটি লুকানো ডিভি প্রদর্শন করুন?


88

ফ্ল্যাশ ইনস্টল করা আছে কিনা তা সনাক্ত করতে আমি জাভাস্ক্রিপ্ট / jQuery / ইত্যাদি কীভাবে ব্যবহার করতে পারি এবং যদি তা না হয় তবে একটি ডিভ প্রদর্শন করুন যা ব্যবহারকারীদের জানায় যে তাদের ফ্ল্যাশ ইনস্টল করার দরকার আছে তা অন্তর্ভুক্ত রয়েছে?

উত্তর:


26

Swfobject ব্যবহার করুন। এটি ইনস্টল করা থাকলে এটি ফ্ল্যাশের সাথে একটি ডিভ প্রতিস্থাপন করে। দেখুন: http://code.google.com/p/swfobject/


159

যদি swfobjectপর্যাপ্ত পরিমাণ না হয়, বা আপনাকে আরও কিছু উচ্চারণের প্রয়োজন হয় তবে এটি চেষ্টা করুন:

var hasFlash = false;
try {
    hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
} catch(exception) {
    hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
}

এটি 7 এবং 8 নিয়ে কাজ করে।


4
এটি ঠিক আছে যদি আপনি এটি ইনস্টল করা আছে কিনা তা সনাক্ত করতে চান এবং অগত্যা কোনওভাবে swf প্রদর্শন করা হয় না তবে এটি দুর্দান্ত কাজ করে।
ctrlShiftBryan

10
এটিতে এটি সংশোধন করতে হয়েছিল: var hasFlash = false; {var ফো = (নেভিগেটর.মাইমটাইপস & অ্যান্ড নেভিগেটর.মাইমটাইপস ['অ্যাপ্লিকেশন / এক্স-শকওয়েভ-ফ্ল্যাশ']) ব্যবহার করে দেখুন? নেভিগেটর.মাইম টাইপস ['অ্যাপ্লিকেশন / এক্স-শকওয়েভ-ফ্ল্যাশ'] enabled সক্ষম প্লাগইন: 0; if (fo) hasFlash = true; } ক্যাচ (ই) {যদি (নেভিগেটর.মাইমটাইপস ['অ্যাপ্লিকেশন / এক্স-শকওয়েভ-ফ্ল্যাশ']! = অপরিবর্তিত) hasFlash = সত্য; } "
ইনভার্টেড

4
এটি আই 7-তে কাজ করবে না, কারণ আপনি অ্যাক্টিভোবজেক্ট অংশটি পরীক্ষা করছেন না
কেভিন

4
পুরো লাইব্রেরিটি ব্যবহার না করে জাভাস্ক্রিপ্টের 5 টি লাইন ব্যবহারের জন্য আপভোট করুন
অ্যালেক্স ডাব্লু

এটি ফায়ারফক্স এবং ক্রোমের মতো অ্যান্ড্রয়েড মোবাইল ব্রাউজারের জন্য কাজ করবে?
মণিপ্রকাশ চিন্নাসামি

104

ফ্ল্যাশ প্লাগইনটি কেবলমাত্র অক্ষম থাকলেও ইনস্টল করা থাকলে @ ড্রুইডের উত্তর আমার ফায়ারফক্স 25 এ কাজ করে না।

এই উত্তরে @ ইনভার্টডস্পিয়ার মন্তব্য ফায়ারফক্সে কাজ করেছে তবে কোনও আইই সংস্করণে নয়।

সুতরাং তাদের কোড উভয় সম্মিলিত এবং এটি পেয়েছি। গুগল ক্রোম 31, ফায়ারফক্স 25, IE 8-10 এ পরীক্ষিত। ধন্যবাদ ড্রিউড এবং ইনভার্টেড স্পিয়ার :)

var hasFlash = false;
try {
  var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
  if (fo) {
    hasFlash = true;
  }
} catch (e) {
  if (navigator.mimeTypes
        && navigator.mimeTypes['application/x-shockwave-flash'] != undefined
        && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
    hasFlash = true;
  }
}

4
শক্ত উত্তর। জীবন রক্ষাকারী জন্য Thnx :)
গোগল

4
ফায়ারফক্স 39 এ কাজ করে (2015-08-03)।
ভ্লাদিমির ভুকানাক

4
প্লাগইন অনুমোদিত থাকলে এটি কাজ করে না তবে আমরা যে ওয়েবসাইটটি যাচাই করছি তার জন্য ফ্ল্যাশ স্পষ্টভাবে ব্লক করা আছে। সাফারি 8.0.8। এই ক্ষেত্রে hasshlash এখনও সত্য (মিথ্যা হওয়া উচিত)।
ইউজিনিও

খুব সুন্দর. ধন্যবাদ!
কোবি ডউইক

4
সংক্ষিপ্ত এবং মিষ্টি
সোহেল ফারুকী

18

আপনি নেভিগেটর.মাইম টাইপগুলি ব্যবহার করতে পারেন।

if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined)
    $("#someDiv").show ();



2

আমি অ্যাডোবের সনাক্তকরণ কিট ব্যবহার করেছি, মূলত জাস্টপাসিনবাই দ্বারা প্রস্তাবিত। তাদের সিস্টেমটি দুর্দান্ত কারণ এটি সংস্করণ নম্বরটি সনাক্ত করে এবং এটি আপনার 'প্রয়োজনীয় সংস্করণ' এর সাথে তুলনা করে

একটি খারাপ জিনিস হ'ল এটি একটি ফ্ল্যাশটির সনাক্ত করা সংস্করণটি প্রদর্শন করে একটি সতর্কতা করে যা খুব ব্যবহারকারী বান্ধব নয়। হঠাৎ একটি বক্স কিছু আপাতদৃষ্টিতে এলোমেলো সংখ্যার সাথে পপ আপ করে।

আপনি বিবেচনা করতে চাইতে পারেন কিছু পরিবর্তন:

  • সতর্কতা অপসারণ
  • এটিকে পরিবর্তন করুন যাতে এটি কোনও বস্তু (বা অ্যারে) ফেরত দেয় --- প্রথম উপাদানটি হ'ল বুলিয়ান ট্রু / মিথ্যা "এর জন্য" ব্যবহারকারীর মেশিনে প্রয়োজনীয় সংস্করণ পাওয়া যায় "--- দ্বিতীয় উপাদানটি হ'ল প্রকৃত সংস্করণ নম্বর যা ব্যবহারকারীর মেশিনে পাওয়া যায়

1

Http://www.featureblend.com/javascript-flash-detection-library.html এর খুব খুব ক্ষুদ্র সংস্করণ (কেবলমাত্র বুলিয়ান ফ্ল্যাশ সনাক্তকরণ)

var isFlashInstalled = (function(){
var b=new function(){var n=this;n.c=!1;var a="ShockwaveFlash.ShockwaveFlash",r=[{name:a+".7",version:function(n){return e(n)}},{name:a+".6",version:function(n){var a="6,0,21";try{n.AllowScriptAccess="always",a=e(n)}catch(r){}return a}},{name:a,version:function(n){return e(n)}}],e=function(n){var a=-1;try{a=n.GetVariable("$version")}catch(r){}return a},i=function(n){var a=-1;try{a=new ActiveXObject(n)}catch(r){a={activeXError:!0}}return a};n.b=function(){if(navigator.plugins&&navigator.plugins.length>0){var a="application/x-shockwave-flash",e=navigator.mimeTypes;e&&e[a]&&e[a].enabledPlugin&&e[a].enabledPlugin.description&&(n.c=!0)}else if(-1==navigator.appVersion.indexOf("Mac")&&window.execScript)for(var t=-1,c=0;c<r.length&&-1==t;c++){var o=i(r[c].name);o.activeXError||(n.c=!0)}}()};  
return b.c;
    })();

if(isFlashInstalled){
    // Do something with flash
    }else{
    // Don't use flash  
        }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.