2010-02-03 6 views
6

Mi chiedo se ci sia un modo Javascript per rilevare se un utente ha una sorta di plug-in di blocco flash installato in modo da poter ospitare correttamente questi utenti.C'è un modo per rilevare i blocchi Flash?

Ad esempio, io uso "click to flash", ma i siti che utilizzano SiFR per il rendering del testo sono pieni di pulsanti "clic per lampeggiare", il che è molto fastidioso. Non uso il SiFR nei miei disegni per questo motivo. Ma se potessi verificare se è installato un plug-in di blocco flash, semplicemente non chiamerei la funzione SiFR.

Qualche idea?

+1

Non sono sicuro e non ho il tempo di approfondire di più, ma hai guardato a swfobject? http://code.google.com/p/swfobject/ – marcgg

+0

http://stackoverflow.com/questions/17727766/how-to-check-flash-plugin-is-blocked-in-chrome o http://stackoverflow.com/questions/5717062/how-to-detect-flash-using-swfobject – GKislin

risposta

4

Dai uno sguardo allo http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html. Puoi chiamare quanto segue dopo che la pagina è stata caricata.

var movie = window.document.movie; 
try { 
    //if the movie is blocked then PercentLoaded() should through an exception 
    if (movie.PercentLoaded() > 0) { 
     //Movie loaded or is loading 
    } 
} 
catch (e) { 
    //Movie is blocked 
} 
+0

404, La pagina non è disponibile –

+0

Nel caso qualcuno sia interessato, la pagina è stata archiviata su archive.org: https : //web.archive.org/web/20100710000820/http: //www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html – nitro2k01

2

Il soundmanager2 libreria JS utilizza la funzione PercentLoaded di un riferimento di film.
Estratto:

return (flash && 'PercentLoaded' in flash ? flash.PercentLoaded() : null); 

interessanti note di sintassi ... Flash/ExternalInterface (ActiveX/NPAPI) metodi ponte non sono typeof “funzione”, né la funzione instanceof, ma sono ancora validi. Inoltre, JSLint non piace (la sintassi in stile "PercentLoaded" in flash) e raccomanda hasOwnProperty(), che in questo caso non funziona. Inoltre, l'utilizzo (flash & & flash.PercentLoaded) fa sì che IE lanci "l'oggetto non supporta questa proprietà o metodo". Pertanto, deve essere utilizzata la sintassi 'in'.

Per ottenere un riferimento a un filmato Flash, lo this page potrebbe rivelarsi utile.

Problemi correlati