2014-09-05 8 views
8

Ich habe swfobject in einem meiner Projekte verwendet, um festzustellen, ob der Endbenutzer eine Version von Flash installiert hat. Das Problem ist mit Firefox, weil es die Meldung zeigt: "Adobe Flash ausführen?" und das möchte ich vermeiden.SwfObject - Ermitteln Flash ohne die "Erlaube es ..." firefox Nachricht

Es geht nicht darum, alternative Inhalte für den Endbenutzer anzuzeigen, was ich möchte, ist nur Flash zu erkennen und wenn Flash nicht installiert ist, zeige nichts, aber wenn Flash installiert ist, dann nicht anzeigen Lassen Sie ... in Firefox laufen.

Kennt jemand eine Möglichkeit, dies mit SwfObject zu verhindern?

Hinweis: Gerade durch die nächste Zeile im HTML-Header einschließlich:

<script type="text/javascript" src="swfobject.js"></script> 

es die Nachricht starten Lassen Sie löst: S

Wenn Sie glauben, es gibt eine bessere Alternative zu swfobject um um dies zu lösen und es ist ein gutes Mehrzweck-SWF-Handler-Tool, ich bin ganz Ohr.

Hier ist ein Beispiel der Nachricht:

enter image description here

Dank

+1

'hasFlash = []. Some.call (navigator.plugins, Funktion (p) {return p.name == "Shockwave Flash"})' – dandavis

+3

@dandavis, warum nicht Sie machen das zu einer vollständigen Antwort? In welchem ​​Kontext sollte Ihr Code verwendet werden? –

Antwort

3

Etwas wie:

var flashInstalled = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false)); 

Nicht sicher, ob Sie alle Browser überprüfen müssen, oder einige gerade, so Möglicherweise können Sie die ActiveX-Prüfungen entfernen ....

2

Der Navigator mimeType repräsentiert ein Plugin-Objekt. Sie können damit die Details jedes im Browser aktivierten Plugins durchforsten und abrufen.

Beispiel:

navigator.mimeTypes Aufruf wird eine Reihe von Plug-Objekte zurück.

FYI: Wenn der Benutzer hat ein Plugin, deaktiviert, dann wird es nicht in diesem Array .. erscheint

Die einfachste Logik ist einfach die Beschreibung Schockwelle für die Suche

var plugins = navigator.mimeTypes; 

var i; 

    for(i = 0 ; i < plugins.length ; i++){ 

      var pluginName = plugins[i].description.toLowerCase() 

      if(pluginName.indexOf('shockwave') > -1){ 

       console.log(pluginName + ' : flash in enabled') 

       break; 
      } 

    } 

Paste dieses Skript in einer beliebigen Konsole.

this helps