Bagaimana saya dapat menggunakan javascript / jQuery / etc untuk mendeteksi jika Flash diinstal dan jika tidak, menampilkan div yang berisi informasi yang memberi tahu pengguna bahwa mereka perlu menginstal flash?
javascript
jquery
asp.net-mvc
flash
detection
KingNestor
sumber
sumber
Jawaban @ Drewid tidak berfungsi di Firefox 25 saya jika plugin flash hanya dinonaktifkan tetapi diinstal.
Komentar @ invertedSpear di jawaban itu berfungsi di firefox tetapi tidak di versi IE mana pun.
Jadi gabungkan kedua kode mereka dan dapatkan ini. Diuji di Google Chrome 31, Firefox 25, IE 8-10. Terima kasih Drewid dan invertedSpear :)
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; } }
sumber
Anda dapat menggunakan navigator.mimeTypes.
if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined) $("#someDiv").show ();
sumber
jqplugin: http://code.google.com/p/jqplugin/
$.browser.flash == true
sumber
Anda juga harus bisa menggunakan ..
swfobject.getFlashPlayerVersion().major === 0
dengan swfobject-Plugin .
sumber
swfobject
tidak ditentukan.Saya menggunakan kit deteksi Adobe, awalnya disarankan oleh justpassinby. Sistem mereka bagus karena mendeteksi nomor versi dan membandingkannya untuk Anda dengan 'versi yang diperlukan'
Satu hal yang buruk adalah ia melakukan peringatan yang menunjukkan versi flash yang terdeteksi, yang sangat tidak ramah pengguna. Tiba-tiba sebuah kotak muncul dengan beberapa nomor yang tampaknya acak.
Beberapa modifikasi yang mungkin ingin Anda pertimbangkan:
sumber
Versi yang sangat sangat kecil dari http://www.featureblend.com/javascript-flash-detection-library.html (hanya deteksi boolean flash)
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 }
sumber