Flash-PlugIn Check

Yehman

New member
Hi,
ein altes Thema hier und doch finde ich nicht die Lösung. Folgendes Script leitet den Browser, der Flash4 oder höher als PlugIn drin hat, weiter:

<script language="JavaScript">
<!--
var browser = "explorer";
if (navigator.appName.indexOf('Netscape') != -1) browser = "netscape";

var platform="macintosh";
if (navigator.appVersion.indexOf('Win') != -1) {
platform = "windows";
}

var version = "";
var fullVersion=0;
var betaVersion="";
if(browser == "netscape") version = unescape(navigator.appVersion.charAt(0));
var msie = navigator.appVersion.lastIndexOf("MSIE") + 5;
if(browser == "explorer") version = unescape(navigator.appVersion.charAt(msie));

if(browser == "netscape") fullVersion = parseFloat(navigator.appVersion.substring(0,4));
if(browser == "explorer") fullVersion = parseFloat(navigator.appVersion.substring(msie,msie+4));

if(browser == "netscape") betaVersion = navigator.appVersion.substring(0,4).indexOf("b")==-1 ? "":"b";
if(browser == "explorer") betaVersion = navigator.appVersion.substring(msie,msie+4).indexOf("b")==-1 ? "":"b";

var plattform = "";
if(navigator.appVersion.lastIndexOf("win16") != -1) plattform = "Win16";
if(navigator.appVersion.lastIndexOf("Win95") != -1) plattform = "Win95";
if(navigator.appVersion.lastIndexOf("WinNT") != -1) plattform = "WinNT";
if(navigator.appVersion.lastIndexOf("68K") != -1) plattform = "68K";
if(navigator.appVersion.lastIndexOf("PPC") != -1) plattform = "PPC";

if(browser=="" || version=="") {
plattform="Win95";
browser = "explorer";
version="3";
fullVersion=3;
}
//-->
</script>
<script language="JavaScript">
<!--
var Flash2 = "no";
var Flash3 = "no";
var Flash4 = "no";
var Flash5 = "no";
var Flash6 = "no";
var FlashMode_ii = null;
var FlashMode_iii = null;
var FlashMode_iiii= null;
var FlashMode_iiiii= null;
var FlashMode_iiiiii= null;
// -->
</script>
<script language="VBScript">
On Error Resume Next
FlashMode_ii = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash")))
On Error Resume Next
FlashMode_iii = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3")))
On Error Resume Next
FlashMode_iiii = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4")))
On Error Resume Next
FlashMode_iiiii = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))
On Error Resume Next
FlashMode_iiiiii = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6")))
</script>
<script language="JavaScript">
<!--
var flashie2 = 0;
var flashie3 = 0;
var flashie4 = 0;
var flashie5 = 0;
var flashie6 = 0;
var plugin2type = "Shockwave Flash"
var plugin3type = "Shockwave Flash 3.0"
var plugin4type = "Shockwave Flash 4.0"
var plugin5type = "Shockwave Flash 5.0"
var plugin6type = "Shockwave Flash 6.0"
if(browser=="netscape" && fullVersion >= 3) {
for(i=0;i<navigator.plugins.length;i++) {
if(navigator.plugins.description.lastIndexOf(plugin2type) != -1) {
flashie2 = 1;
}
if(navigator.plugins.description.indexOf(plugin3type) != -1) {
flashie3 = 1;
}
if(navigator.plugins.description.indexOf(plugin4type) != -1) {
flashie4 = 1;
}
if(navigator.plugins.description.indexOf(plugin5type) != -1) {
flashie5 = 1;
}
if(navigator.plugins.description.indexOf(plugin6type) != -1) {
flashie6 = 1;
}
}
}
if(flashie2 == 1) Flash2 = "yez";
if(flashie3 == 1) Flash3 = "yez";
if(flashie4 == 1) Flash4 = "yez";
if(flashie5 == 1) Flash5 = "yez";
if(flashie6 == 1) Flash6 = "yez";

if(browser=="explorer") {
if(FlashMode_ii) Flash2 = "yez";
if(FlashMode_iii) Flash3 = "yez";
if(FlashMode_iiii) Flash4 = "yez";
if(FlashMode_iiiii) Flash5 = "yez";
if(FlashMode_iiiiii) Flash6 = "yez";
}
//-->
</script>

<script language="JavaScript">
<!--
var font="<font face='arial,helvetica,sans serif'>";
var install=font+"Es scheint, als ob bei Ihnen kein Flash 4 (oder höher) PlugIn installiert ist, was zur Darstellung der Site nötig ist. Kostenloser download <a href='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' target='_blank'>hier</a><br>Das PlugIn wurde nicht richtig erkannt, <a href='flash/index.html' target='_self'>hier geht's weiter</a></font></i>";

if(Flash6=="yez") {
self.location.href="flash/index.html"
} else if(Flash5=="yez") {
self.location.href="flash/index.html"
} else if(Flash4=="yez") {
self.location.href="flash/index.html"
} else {
self.location.href="html/index.html";
}
// -->
</script>
</head>

<body>
Flash-Check<br>
Falls keine Weiterleitung stattfindet, ist durch eine Firewall oder die Sicherheitseinstellung Ihres Browsers <font color="Red">Java-Script deaktiviert</font>. Wenn bei Ihnen eine Flash-PlugIn Version 4 oder höher installiert ist, bitte klicken Sie <br>
<br><a href="flash/index.html">hier</a>, um fortzufahren.
<br>
<br>
Die html-Version finden Sie <a href="html/index.html">hier</a>.

Funktioniert mit aktuellem IE und Netscape auf Windowsplattform, allerdings nicht mit IE auf Mac.
WAS KANN MAN DAGEGEN TUN?

Bin sehr dankbar für Hilfe
Yehman
 
var platform="macintosh";
if (navigator.appVersion.indexOf('Win') != -1) {
platform = "windows";

möglicherweise ist die funktion hier. oder der IE auf den Mac ist zu alt und erkennt diesen Script nicht
 
die einfachste möglichkeit zu überprüfen, ob der user flash hat ist immer noch, die einbindung eines mini-flashfilmes, der sofort auf die entsprechende seite weiterleitet.
man braucht kein js -> keine wilde fehlersucherei und keine crossbrowser-problematik.
sollte derjenige kein flash haben, einfach meta-refresh in head einfügen mit weiterleitung auf nicht-flashseite nach einigen sekunden.
 
http://forum.jswelt.de/search.php?s=


Die beschriebene Methode mit einer eigenen Mini-Flash Datei hat allerdings einen Nachteil: der Browser lädt die SWF und, wenn nicht installiert, dann wird der User ggfs. automatisch nach MM umgeleitet, bzw. bekommt die Meldung, daß er ein Plugin installieren müsse, welches auf MM zu haben ist, was eben sehr unschön ist / sein kann.
 
Also, ich habs einmal so primitiv wie nur möglich gemacht. Und zwar so, dass ich einfach einen Flashfilm eingebunden habe, auf dem stand: Sie können die Flash-Version wählen".

Tja, einfach und mit allen Browsern kompatibel. Ausserdem hatte ich eine Entwicklungszeit von 5 Minuten.
 
Dann wurde einfach nicht eingeblendet, nur der Auswahl-Dialog HTML / Flash Version und die Bemerkung, dass man die HTML-Version wählen soll, falls unten nicht das Gegenteil steht.
 
Hmm irgendwie wiederhole ich mich jetzt zwar, aber, zumindest der IE (den hab ich grad getestet) zeigt bei einer solchen "Flash Weiterleitung" einen Download Dialog für MMs Plugin an. Wer es nicht glaubt, der kann sich gerne vom Gegenteil überzeugen. Hier die Anleitung:
Entweder FlashPluginSwitcher von http://www.kewbee.de/FlashPluginSwitcher/index.php oder das Deinstallationstool von MM runterladen. Plugin für IE entfernen (vorher alle IEs zumachen), dann die Seite aufrufen.
 
Also. Ich glaube ich muss erklären.

Wenn ich sage, dass ich diese Variante in 5 Minuten gemacht habe, dann liegt es nahe, dass der QT etwa so aussah:
Code:
Bitte wählen Sie die Version aus:<br>
- <a href="html.html">HTML</a><br>
- <a href="flash.html">Flash</a><br>
Bitte wählen Sie die HTML-Version, falls unten nicht das Gegenteil angezeigt wird!<br><br>
<flash plugin>


Was ich damit sagen will, ist, dass es keinen wirklichen Quelltext gab, sondern einfach mit logischen Konsequenzen gearbeitet wurde.
 
Ist auch richtig und natürlich nicht so schön.
Bettet man die Flash-Weiterleitung bur mit:

<body>
<OBJECT ID=Unbenannt WIDTH=78 HEIGHT=53>
<PARAM NAME=movie VALUE="test.swf">
<PARAM NAME=loop VALUE=false>
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="test.swf" quality=high bgcolor=#FFFFFF loop=false
WIDTH=78 HEIGHT=53">
</EMBED>
</OBJECT>

ein, verzichtet also auf :
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0"

dann gibt es jedenfalls beim IE keine Meldung und über den MEta-Refresh kann ich zu der html-version weiterleiten. In jedem Fall vielen Dank für die Hinweise.
Y
 
Zurück
Oben