Come è possibile utilizzare javascript/jQuery/etc per rilevare se Flash è installato e, in caso contrario, visualizzare un div che contiene informazioni che informano l'utente della necessità di installare il flash?Come posso rilevare se Flash è installato e in caso contrario, visualizzare un div nascosto che informa l'utente?
risposta
Utilizzare swfobject. sostituisce un div con il flash se è installato. vedere: http://code.google.com/p/swfobject/
È possibile utilizzare navigator.mimeTypes.
if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined)
$("#someDiv").show();
Se swfobject
non sarà sufficiente, oppure è necessario creare qualcosa di più su misura, provate questo:
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
} catch(exception) {
hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
}
Funziona con 7 e 8.
funziona bene se vuoi solo rilevare se è installato e non necessariamente visualizzare uno swf in entrambi i casi. – ctrlShiftBryan
Doveva essere modificato in: var hasFlash = false; \t \t try { \t \t var fo = (navigator.mimeTypes && navigator.mimeTypes ['application/x-shockwave-flash'])? navigator.mimeTypes ['application/x-shockwave-flash']. enabledPlugin: 0; \t \t if (fo) hasFlash = true; \t \t} catch (e) { \t \t if (navigator.mimeTypes ['application/x-shockwave-flash']! = Undefined) hasFlash = true; \t \t}" – invertedSpear
che non funzionerà su IE7, in quanto non sta testando la parte ActiveXObject – Kevin
ho usato il rilevamento di Adobe kit, originariamente suggerito da justpassinby. Il loro sistema è bello perché rileva il numero di versione e lo confronta per te rispetto alla "versione richiesta"
Una cosa negativa è che fa un avviso che mostra la versione rilevata del flash, che non è molto user-friendly. Tutto ad un tratto una scatola si apre con alcuni numeri apparentemente casuali.
Alcune modifiche si potrebbe prendere in considerazione:
- rimuovere l'avviso
- modificarlo in modo che restituisce un oggetto (o array) --- primo elemento è booleano true/false per "è stato il versione richiesta trovato nel computer dell'utente" --- secondo elemento è il numero di versione trovato nel computer dell'utente
jqplugin: http://code.google.com/p/jqplugin/
$.browser.flash == true
@ La risposta di Drewid non ha funzionato nel mio Firefox 25 se il plug-in Flash è semplicemente disabilitato ma installato.
@ il commento di invertedSpear in quella risposta ha funzionato in firefox ma non in qualsiasi versione di IE.
Quindi combinato il loro codice e ottenuto questo. Testato su Google Chrome 31, Firefox 25, IE 8-10. Grazie Drewid e 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;
}
}
Si dovrebbe anche essere in grado di usare ..
swfobject.getFlashPlayerVersion().major === 0
con il swfobject-Plugin.
'swfobject' non è definito. – mikemaccana
versione molto molto minified di http://www.featureblend.com/javascript-flash-detection-library.html (solo il rilevamento di Flash booleano)
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
}
- 1. Rileva se Flash è installato su Android e incorpora un video Flash in un'attività
- 2. jQuery webcam/flash: come rilevare se la webcam è attiva?
- 3. Browserify: Utilizzare module.exports se necessario, in caso contrario esporre globale
- 4. Come posso verificare se un modulo PowerShell è installato?
- 5. jQuery: controlla se il valore è nella matrice, in caso affermativo, cancella, in caso contrario, aggiungi
- 6. Come rilevare se Java Runtime è installato o meno
- 7. modo indipendente dalla piattaforma di rilevare se è installato git
- 8. Inserire controllo query se esiste registrazione - In caso contrario, inserirla
- 9. Come posso verificare se un MSI particolare è installato?
- 10. Se div non è nascosto clicca ovunque per nascondere
- 11. Come posso rilevare se Dispatcher.DisableProcessing è attivo?
- 12. Rilevare se due div sovrappongono
- 13. Come visualizzare un elemento div vuoto?
- 14. Come scrivere un MySQL in caso contrario la dichiarazione endif?
- 15. Modo corretto per rilevare se SQLCMD.exe è installato?
- 16. Javascript Rileva se Adobe Reader è installato
- 17. Come posso rilevare se un prodotto firewall è abilitato?
- 18. Come posso rilevare se un utente è lontano dalla tastiera?
- 19. Flash - Riproduce il filmato al contrario?
- 20. Come posso rilevare se un iframe è stato caricato?
- 21. Come posso rilevare se un'unità ha un cestino in C#?
- 22. Rileva se il genitore html è nascosto
- 23. Chef: come faccio a verificare se è installato un servizio?
- 24. Controllare div è nascosto utilizzando jQuery
- 25. Questo codice è scritto in Pl/Sql e, in caso contrario, quale lingua è?
- 26. Come posso rilevare se l'IDE Delphi specifico è in esecuzione?
- 27. controllare se è installato un programma
- 28. Come posso determinare se MS Office 2007 SP2 è installato?
- 29. Come posso sapere se .NET 4.02 è installato?
-1 Non sembra funzionare in IE7. –