Czy ktoś ma przykład skryptu, który może działać niezawodnie w przeglądarce IE / Firefox, aby wykryć, czy przeglądarka jest w stanie wyświetlać osadzoną zawartość flash. Mówię rzetelnie, bo wiem, że to niemożliwe w 100% przypadków.
97
Odpowiedzi:
SWFObject jest bardzo niezawodny. Używałem go bez problemu od dłuższego czasu.
źródło
$('html').addClass(typeof swfobject !== 'undefined' && swfobject.getFlashPlayerVersion().major !== 0 ? 'flash' : 'no-flash');
if( swfobject.hasFlashPlayerVersion("8.0") ) { }
nie jest zainstalowana, używając swfobject z opcją Zgłasza false. Liczba to minimalna wymagana wersja Flash Playera.Zgadzam się z Maxem Stewartem . SWFObject to droga do zrobienia. Chciałbym uzupełnić jego odpowiedź przykładem kodu. To powinno Ci pomóc:
Upewnij się, że dołączyłeś
swfobject.js
plik (pobierz go tutaj ):Następnie użyj tego w ten sposób:
Zastąp „9.0.115” dowolną minimalną wersją Flash, której potrzebujesz. Jako przykład wybrałem 9.0.115, ponieważ jest to wersja, która dodała obsługę h.264.
Jeśli odwiedzający nie ma Flasha, zgłosi wersję flash „0.0.0”, więc jeśli chcesz tylko wiedzieć, czy w ogóle ma flasha, użyj:
źródło
if(SWFobject && SWFobject.hasFlashPlayerVersion("1")) { // code here }
Wiem, że to stary post, ale szukałem przez jakiś czas i nic nie znalazłem.
Zaimplementowałem bibliotekę JavaScript Flash Detection Library . Działa bardzo dobrze i jest udokumentowany do szybkiego użycia. Dosłownie zajęło mi to 2 minuty. Oto kod, który napisałem w nagłówku:
źródło
Możesz użyć kompilatora zamykania, aby wygenerować małe wykrywanie flashowania w różnych przeglądarkach:
co skutkuje następującym „skompilowanym” kodem:
źródło
goog.userAgent.flash
z Google's Closure Compiler)? Chcę się tylko upewnić, że nie brakuje mi tutaj jakiejś niuansowej różnicy.Minimalna wersja, z której kiedykolwiek korzystałem (nie sprawdza wersji, tylko wtyczka Flash):
źródło
Biblioteka wykrywania Flash JavaScript Carla Yestrau, tutaj:
http://www.featureblend.com/javascript-flash-detection-library.html
... może być tym, czego szukasz.
źródło
Może przydałby się tutaj zestaw do wykrywania odtwarzacza flash firmy Adobe?
http://www.adobe.com/products/flashplayer/download/detection_kit/
źródło
Wykrywanie i osadzanie Flasha w dokumencie internetowym jest zaskakująco trudnym zadaniem.
Byłem bardzo rozczarowany jakością i niezgodnymi ze standardami znacznikami wygenerowanymi przez rozwiązania SWFObject i Adobe. Ponadto moje testy wykazały, że automatyczny aktualizator Adobe jest niespójny i zawodny.
Biblioteka wykrywania Flash JavaScript (wykrywanie Flash) i JavaScript Flash HTML Generator Library (Flash TML) to czytelne, łatwe w utrzymaniu i zgodne ze standardami rozwiązanie do tworzenia znaczników.
- "Luke przeczytaj źródło!"
źródło
Kod jednej
isFlashExists
zmiennej liniowej :Zauważ, że istnieje taka alternatywa:
swfobject.getFlashPlayerVersion();
źródło
Zobacz źródło na http://whatsmy.browsersize.com (linie 14-120).
Oto abstrakcyjny kod dla przeglądarek na jsbin tylko do wykrywania flash , działa na: FF / IE / Safari / Opera / Chrome.
źródło
detectObject()
odpowiednik dla IE.co powiesz na:
źródło
Jeśli jesteś zainteresowany czystym rozwiązaniem Javascript, oto ten, który skopiowałem z Brett :
źródło
Jeśli chciałeś tylko sprawdzić, czy flash jest włączony, to powinno wystarczyć.
Uwaga: unikaj zaznaczania enabledPlugin , niektóre przeglądarki mobilne mają wtyczkę flash z funkcją dotknij, aby włączyć, która wywoła fałszywie negatywny wynik.
źródło
Aby utworzyć obiekt Flash zgodny ze standardem (jednak z JavaScriptem), polecam przyjrzeć się
Dyskretne obiekty błyskowe (UFO)
http://www.bobbyvandersluis.com/ufo/index.html
źródło
Stworzyłem mały,
.swf
który przekierowuje. Jeśli przeglądarka ma włączoną obsługę Flash, przekieruje.źródło
Używając kompilatora Google Closure goog.require ('goog.userAgent.flash') utworzyłem te 2 funkcje.
boolean hasFlash ()
Zwraca, jeśli przeglądarka ma Flash.
boolean isFlashVersion (wersja)
Zwraca, jeśli wersja Flash jest większa niż wersja podana
źródło