Jak mogę użyć javascript / jQuery / etc, aby wykryć, czy Flash jest zainstalowany, a jeśli tak nie jest, wyświetlić div, który zawiera informacje informujące użytkownika, że musi zainstalować Flash?
javascript
jquery
asp.net-mvc
flash
detection
KingNestor
źródło
źródło
Odpowiedź @ Drewid nie działa w moim Firefoksie 25, jeśli wtyczka flash jest właśnie wyłączona, ale zainstalowana.
Komentarz @ invertedSpear w tej odpowiedzi działał w przeglądarce Firefox, ale nie w żadnej wersji IE.
Więc połączyliśmy oba ich kod i otrzymaliśmy to. Przetestowano w Google Chrome 31, Firefox 25, IE 8-10. Dzięki Drewid i odwróconej włóczni :)
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; } }
źródło
Możesz użyć navigator.mimeTypes.
if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined) $("#someDiv").show ();
źródło
jqplugin: http://code.google.com/p/jqplugin/
$.browser.flash == true
źródło
Powinieneś także móc używać ..
swfobject.getFlashPlayerVersion().major === 0
za pomocą swfobject-Plugin .
źródło
swfobject
jest niezdefiniowana.Użyłem zestawu wykrywającego Adobe, pierwotnie zasugerowanego przez justpassinby. Ich system jest fajny, ponieważ wykrywa numer wersji i porównuje go z twoją „wymaganą wersją”
Jedną z wad jest to, że wyświetla alert pokazujący wykrytą wersję flasha, która nie jest zbyt przyjazna dla użytkownika. Nagle pojawia się okno z pozornie przypadkowymi liczbami.
Niektóre modyfikacje, które warto rozważyć:
źródło
Bardzo bardzo zminimalizowana wersja http://www.featureblend.com/javascript-flash-detection-library.html (tylko boolowska detekcja 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 }
źródło