Thomas: Plug-In Abfrage für den IE?

Hallo!

Ich benutze auf meiner Seite Shockwave Flash und Director für Shockwave-Filme. Selbstverständlich interessiert es mich nun, ob der Betrachter auch die richtigen bzw. überhaupt einen entsprechenden Plug-In installiert hat um evtl. alternative Maßnahmen zu ergreifen.

Die Abfrage unter Javascript funktioniert bei Netscape einwandfrei. Beim IE scheint es nun kein plugin-Objekt zu geben - oder täusche ich mich?!

Wenn ich eine Abfrage der Art...

function ShockTest() {
if(navigator.plugins["Shockwave Director"]) {ShockJa();}
else {ShockNein();}
}

...in Netscape realisiert habe - läßt sich dies auch in ähnlicher Form für den IE4/5 realisieren?

Vielen Dank!!!

Thomas

  1. Hallo,

    das liegt einzig und alleine daran das IE keine Plug-ins hat, bei dem wird das per ActiveX gemacht.

    Wenn du Flash3 hast, hast du sicher auch Aftershook oder?

    das produziert folgenden code:
    -----CUT-----
    <HTML>
    <HEAD>
    <TITLE>Shockwave</TITLE>
    </HEAD>
    <BODY bgcolor="#FFFFFF">

    <!-- Aftershock test.swf 3=320 4=240 38 -->
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0"
    ID=test WIDTH=320 HEIGHT=240>
      <PARAM NAME=movie VALUE="test.swf">
      <PARAM NAME=quality VALUE=autohigh>
      <PARAM NAME=bgcolor VALUE=#FFFFFF>
    <SCRIPT LANGUAGE=JavaScript>
    <!--
    var ShockMode = 0;
    if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
    if (navigator.plugins && navigator.plugins["Shockwave Flash"])
      ShockMode = 1;
    }
    function checkForShockwave()
    {
    navigator.plugins.refresh();
    if ( navigator.plugins["Shockwave Flash"] ){
      parent.location.reload();
    } else {
      setTimeout( "checkForShockwave()", 1000 );
    }
    }
    if (!ShockMode && navigator.appName && navigator.appName.indexOf("Netscape") != - 1 && navigator.appVersion.indexOf("4.") != - 1
    && navigator.javaEnabled() && netscape.softupdate.Trigger.UpdateEnabled() && document.cookie.indexOf("StartedShockwaveInstall") == -1) {
    var jarPath = new String("");
    if (navigator.platform.indexOf("Win32") >= 0 )
      jarPath = "http://download.macromedia.com/pub/shockwave/jars/english/silentflash32.jar"
    else if (navigator.platform.indexOf("Win16") >= 0 )
      jarPath = "http://download.macromedia.com/pub/shockwave/jars/english/silentflash16.jar"
    else if (navigator.platform.indexOf("MacPPC") >= 0 )
      jarPath = "http://download.macromedia.com/pub/shockwave/jars/english/silentflashppc.jar"
    if (jarPath.length) {
      netscape.softupdate.Trigger.StartSoftwareUpdate (jarPath, netscape.softupdate.Trigger.FORCE_MODE);
      document.cookie='StartedShockwaveInstall;path=/;'
      setTimeout("checkForShockwave()", 1000);
    }
    }
    if ( ShockMode ) {
    document.write('<EMBED SRC="test.swf"');
    document.write(' swLiveConnect=FALSE WIDTH=320 HEIGHT=240');
    document.write(' QUALITY=autohigh BGCOLOR=#FFFFFF');
    document.write(' TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">');
    document.write('</EMBED>');
    } else if (!(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("2.")>=0)){
    document.write('<IMG SRC="test.gif" WIDTH=320 HEIGHT=240 BORDER=0>');
    }
    //-->
    </SCRIPT><NOEMBED><IMG SRC="test.gif" WIDTH=320 HEIGHT=240 BORDER=0></NOEMBED><NOSCRIPT><IMG SRC="test.gif" WIDTH=320 HEIGHT=240 BORDER=0></NOSCRIPT></OBJECT><!-- EndAftershock test.swf -->
    </BODY>
    </HTML>
    ------CUT------

    hoffe das hilft dir weiter

    Ciao
    Ludwig

  2. Das hier funzt 100%:
    <SCRIPT language="JavaScript">
    <!--
    function wall(what)
            {
            var count = -1;
            var a = 0;
            while (a < navigator.plugins.length && count == -1)
                    {
                    if (navigator.plugins[a].name.indexOf(what) != -1)
                            {
                            count = a
                            }
                    a++;
                    }
            return count
            }

    var FlashMode = false;
    if (navigator.appName.indexOf("etsc") != -1)
            {
            if (wall("Flash") != -1)
                    {
                    FlashMode = true ;
                    }
            }

    // Close the comment tag. -->
    </SCRIPT>
    <SCRIPT LANGUAGE=VBScript>
    on error resume next
      FlashMode = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))
    If FlashMode = False Then
      FlashMode = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))
    End If

    </SCRIPT>
    <SCRIPT language="JavaScript">
    if (FlashMode == true ) { window.location='indexFLASH.html' } ;
    </script>

    </HEAD>

    :
    :
    :

    Ist Flash vorhanden gehts weiter...

    Der IE teil besteht auf ein klein wenig VBScript. unter dem IE teilen sich JavaScript und VBScript den gleichen Variablen raum. Der IE teil beruht daruaf das versucht wird ein active-x controll objekt für flash zu erzeugen und ob das gelingt. diese methode stellt auch fest ob die ausführung aufgrund von sicherheits einstellungen nicht möglich ist.

    Timo