2010-02-03 15 views
6

Zastanawiam się, czy istnieje metoda Javascript do wykrycia, że ​​użytkownik ma zainstalowaną wtyczkę flash blocking, więc mogę odpowiednio dostosować tych użytkowników.Czy istnieje sposób wykrywania blokerów Flash?

Na przykład używam opcji "kliknij, aby błyskać", ale witryny korzystające z SiFR do renderowania tekstu są zaśmiecone przyciskami "kliknij, aby flashować", co staje się bardzo irytujące. Z tego powodu nie używam SiFR w moich projektach. Ale gdybym mógł zauważyć, że zainstalowana jest wtyczka Flash Blocking, po prostu nie zadzwoniłbym do funkcji SiFR.

Wszelkie pomysły?

+1

Nie jestem pewien i nie mam czasu, aby kopać więcej, ale czy spojrzałeś na swfobject? http://code.google.com/p/swfobject/ – marcgg

+0

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

Odpowiedz

4

Spójrz na http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html. Po załadowaniu strony możesz zadzwonić.

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, Strona nie jest dostępna –

+0

W przypadku ktoś jest zainteresowany, strona i archiwizowane na archive.org: https : //web.archive.org/web/20100710000820/http: //www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html – nitro2k01

2

soundmanager2 JS biblioteka używa funkcji PercentLoaded z odniesieniem filmowego.
Fragment:

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

Ciekawe notatki składni ... Flash/ExternalInterface (ActiveX/NPAPI) metody most nie są typeof „funkcja”, ani instanceof funkcji, ale są nadal ważne. Ponadto JSLint nie lubi (składnia "PercentLoaded" w wersji flash) stylu i zaleca hasOwnProperty(), która nie działa w tym przypadku. Ponadto użycie (flash & & flash.PercentLoaded) powoduje, że IE rzuca "obiekt nie obsługuje tej właściwości lub metody". Dlatego też należy użyć składni "in".

Aby uzyskać odniesienie do filmu Flash, może okazać się użyteczny this page.

Powiązane problemy