Jak mogę wykryć, czy Flash jest zainstalowany, a jeśli nie, wyświetl Ukryty div, który informuje użytkownika?
Jak mogę użyć javascript / jQuery / etc, aby wykryć, czy Flash jest zainstalowany, a jeśli nie, wyświetl div, który zawiera informacje informujące użytkownika, że musi zainstalować flash?
8 answers
Użyj swfobject. zastępuje div Flashem, jeśli jest zainstalowany. zobacz: http://code.google.com/p/swfobject/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-21 00:12:52
Jeśli swfobject
nie wystarczy, lub musisz stworzyć coś nieco bardziej szytego na miarę, spróbuj tego:
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
} catch(exception) {
hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
}
Działa z 7 i 8.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-23 19:08:37
@Drewid odpowiedź nie działa w moim Firefoksie 25 Jeśli wtyczka flash jest po prostu wyłączona, ale zainstalowana.
@invertedSpear komentarz w tej odpowiedzi działał w Firefoksie, ale nie w żadnej wersji IE.
/ Align = "left" / Testowane w Google Chrome 31, Firefox 25, IE 8-10. Dzięki Drewid i 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;
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-20 12:03:30
Możesz użyć nawigatora.mimetypy.
if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined)
$("#someDiv").show ();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-15 20:44:19
Jqplugin: http://code.google.com/p/jqplugin/
$.browser.flash == true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-21 00:21:30
Powinieneś również być w stanie używać..
swfobject.getFlashPlayerVersion().major === 0
Z SWFObject-Plugin .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-23 10:03:47
Użyłem zestawu do wykrywania Adobe, pierwotnie sugerowanego przez justpassinby. Ich system jest ładny, ponieważ wykrywa numer wersji i porównuje go z "wymaganą wersją"
Jedną złą rzeczą jest to, że robi alert pokazujący wykrytą wersję Flasha, która nie jest zbyt przyjazna dla użytkownika. Nagle pojawia się pudełko z pozornie przypadkowymi liczbami.
Niektóre modyfikacje, które warto rozważyć:
- Usuń alert
- zmień go tak, aby wrócił obiekt (lub tablica) --- pierwszy element to wartość logiczna true / false Dla " czy wymagana wersja została znaleziona na komputerze użytkownika" --- drugi element to rzeczywisty numer wersji znaleziony na maszynie użytkownika
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-29 14:54:33
Bardzo bardzo minifikowana Wersja http://www.featureblend.com/javascript-flash-detection-library.html (tylko boolean flash detection)
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
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-07 11:10:51