Hat jemand ein Beispiel für ein Skript, das in IE / Firefox zuverlässig funktioniert, um festzustellen, ob der Browser eingebettete Flash-Inhalte anzeigen kann? Ich sage zuverlässig, weil ich weiß, dass es nicht 100% der Zeit möglich ist.
96
Antworten:
SWFObject ist sehr zuverlässig. Ich habe es eine ganze Weile ohne Probleme benutzt.
quelle
$('html').addClass(typeof swfobject !== 'undefined' && swfobject.getFlashPlayerVersion().major !== 0 ? 'flash' : 'no-flash');
if( swfobject.hasFlashPlayerVersion("8.0") ) { }
Throws false nach Flash, wenn kein Flash installiert ist. Die Nummer ist die erforderliche Mindestversion des Flash Players.Ich stimme Max Stewart zu . SWFObject ist der richtige Weg. Ich möchte seine Antwort mit einem Codebeispiel ergänzen. Dies sollte Ihnen den Einstieg erleichtern:
Stellen Sie sicher, dass Sie die
swfobject.js
Datei aufgenommen haben ( hier herunterladen ):Dann benutze es so:
Ersetzen Sie "9.0.115" durch die erforderliche Mindest-Flash-Version. Ich habe 9.0.115 als Beispiel gewählt, weil dies die Version ist, die h.264-Unterstützung hinzugefügt hat.
Wenn der Besucher keinen Flash hat, wird eine Flash-Version von "0.0.0" gemeldet. Wenn Sie also nur wissen möchten, ob er überhaupt Flash hat, verwenden Sie:
quelle
if(SWFobject && SWFobject.hasFlashPlayerVersion("1")) { // code here }
Ich weiß, dass dies ein alter Beitrag ist, aber ich habe eine Weile gesucht und nichts gefunden.
Ich habe die JavaScript Flash Detection Library implementiert . Es funktioniert sehr gut und ist für den schnellen Gebrauch dokumentiert. Es hat buchstäblich 2 Minuten gedauert. Hier ist der Code, den ich in den Header geschrieben habe:
quelle
Sie können den Closure-Compiler verwenden , um eine kleine browserübergreifende Flash-Erkennung zu generieren:
was zu folgendem "kompilierten" Code führt:
quelle
goog.userAgent.flash
von Googles Closure Compiler)? Ich möchte nur sicherstellen, dass mir hier kein nuancierter Unterschied entgeht.Mindestversion, die ich jemals verwendet habe (überprüft nicht die Version, nur das Flash-Plugin):
quelle
Carl Yestraus JavaScript Flash Detection Library, hier:
http://www.featureblend.com/javascript-flash-detection-library.html
... könnte das sein, wonach Sie suchen.
quelle
Vielleicht könnte das Flash Player Detection Kit von Adobe hier hilfreich sein?
http://www.adobe.com/products/flashplayer/download/detection_kit/
quelle
Das Erkennen und Einbetten von Flash in ein Webdokument ist eine überraschend schwierige Aufgabe.
Ich war sehr enttäuscht von der Qualität und den nicht standardkonformen Markups, die sowohl mit SWFObject- als auch mit Adobe-Lösungen generiert wurden. Außerdem haben meine Tests ergeben, dass der automatische Updater von Adobe inkonsistent und unzuverlässig ist.
Die JavaScript Flash Detection Library (Flash Detect) und die JavaScript Flash HTML Generator Library (Flash TML) sind eine lesbare, wartbare und standardkonforme Markup-Lösung.
- "Luke hat die Quelle gelesen!"
quelle
Code für eine Liner-
isFlashExists
Variable:Beachten Sie, dass es eine Alternative wie diese gibt:
swfobject.getFlashPlayerVersion();
quelle
Die Quelle finden Sie unter http://whatsmy.browsersize.com (Zeilen 14-120).
Hier ist der abstrahierte browserübergreifende Code auf jsbin, der nur zur Flash-Erkennung dient und funktioniert unter: FF / IE / Safari / Opera / Chrome.
quelle
detectObject()
Gegenstück für IE.wie wäre es mit:
quelle
Wenn Sie an einer reinen Javascript-Lösung interessiert sind, ist hier die, die ich von Brett kopiere :
quelle
Wenn Sie nur überprüfen möchten, ob Flash aktiviert ist, sollte dies ausreichen.
Hinweis: Vermeiden Sie die Überprüfung von enabledPlugin . Einige mobile Browser verfügen über ein Flash-Plugin zum Aktivieren und aktivieren falsch negative Ergebnisse .
quelle
Um ein Flash-Objekt zu erstellen, das dem Standard entspricht (jedoch mit JavaScript), empfehlen wir Ihnen, einen Blick darauf zu werfen
Unauffällige Flash-Objekte (UFO)
http://www.bobbyvandersluis.com/ufo/index.html
quelle
Habe ein kleines erstellt,
.swf
das umleitet. Wenn der Browser Flash-fähig ist, wird er umgeleitet.quelle
Mit der Bibliothek goog.require ('goog.userAgent.flash') des Google Closure-Compilers habe ich diese beiden Funktionen erstellt.
boolean hasFlash ()
Gibt zurück, wenn der Browser Flash hat.
boolean isFlashVersion (Version)
Gibt zurück, wenn die Flash-Version größer als die angegebene Version ist
quelle