Michael Katze: Java-Prüfung

Hallo,
habe da ein kleines Problem mit meinem Java-Script-Skript, das ich auf meiner HP (www.diekatz.de) eingefügt habe.
Es handelt sich dabei um ein Skript, daß den Browser darauf testen sollt, ob die JVM istalliert wurde, und er Java-Applets anzeigen kann. Sollte dies nicht der Fall sein, so soll der Browser die Alternativ-Grafik anzeigen. Das Skript sieht so aus:
//
<script language="JavaScript">

if(navigator.javaEnabled()) {  

document.writeln('<applet code="stn_bump.class"... // hab's für's Beispiel verkürzt//  ...een" value="100"><param name="hred" value="100"></applet>')
}
else {
  document.writeln('<IMG SRC="willkatz3.jpg" width="506" height="147">')
}
</script>
//

Mein Problem ist jetzt, daß auf einem Browser mit JVM das Applet zwar einwandfrei angezeigt wird, ein Browser ohne JVM jedoch versucht das Applet trotzdem anzuzeigen, und den User fragt, ob die JVM heurunter geladen werden soll.
Was ist an meinem Applet falsch ?
Gibt es da noch ein alternatives Skript, mit dem man die Javafähigkeit des Browsers testen kann ?

Bitte um Hilfe !
Gruß,
Michael Katze

  1. Hi Michael,

    ins Blaue hinein: bei if-Abfragen dürfen die Klammern da nicht stehen, also nicht:

    if(navigator.javaEnabled())

    sondern:

    if(navigator.javaEnabled)

    Teste mal, vielleicht hilft's was.

    Grüße,

    Utz

    1. Hi Utz,

      dnke für den Tip !
      Werd's mal so ausprobieren...
      Nur glaub ich nicht so richtig, daß es daran liegt !
      Denn erstens ist das Script in der SELFHTML-Doku genauso vorgegeben, wie ich's bis jetzt geschrieben aben, und zweitens, wird die if-Anweisung ja auch befolgt. Nur die else-Anweisung nicht, da der Browser dennoch versucht das Applet zu starten bzw. sich meldet um nach dem Download für die JVM zu fragen.
      Ich weiß das, da noch andere Grafiken angezeigt werden, die nur angezeigt werden sollen, wenn die JVM für den Browser vorhanden ist.
      Schau Dir doch mal den kompletten Quelltext an !
      Die betreffende HTML-Datei findest Du heir:

      http://www.diekatz.de/main.html

      Wie gesagt, bei Java-fähigen Browsern, wird das Applet einwandfrei dargestellt, also muß der if_Anweisung ja alles in Ordnung sein - nur auf "else" reagiert der Javaunfähige Browser nicht.

      1. Hi Michael,

        hmmmm...ich denke, dass schon mit der if-Abfrage was nicht stimmen kann - sie wird ja fälschlicherweise als "true" erkannt, auch wenn die JVM abgeschaltet ist (bis "else" kommt der Browser offensichtlich überhaupt nicht).
        Was mir noch einfällt - setz doch mal ans Ende der Zeile den ; der da eigentlich auch hingehört.
        Und: teste mal, die " durch \ zu escapen (so wie in der SelfHTML-Vorlage)

        Ich hab selber den Befehl javaEnabled noch nie benutzt, falls der also irgendwelche gemeinen Tücken haben sollte (sowas gibt's ja), bin ich damit überfragt.

        Viel Glück trotzdem,

        Utz

        1. Also, ich schätze jetzt mal, daß das Problem am IE 5.01 liegt.
          Habe " if(navigator.javaEnabled()) " durch " if(!navigator.javaEnabled()) " - also: ist nicht Java-fähig - ausgetauscht.
          Dann greift der Browser auf "else" zu, und zeigt die alternativ Grafik.

          Ich glaube, daß der IE denkt, er wäre Java-fähig, obwohl gar keine Microsoft-VM auf meinem zweiten Testrechner installiert ist.

          Muß es mal mit Netscape ausprobieren, aber den muß ich mir erst mal downloaden...

          Ansonsten müßte ich mich nach einer anderen Abfrage umsehen, die einfach nur schaut, ob der Browser Java-Fähig ist bzw. über die JVM verfügt.

          Die Abfrage gibt es seit Java-Script 1.1 . Vielleicht gibt es seit JS 1.2 eine neue, alternative Abfrage !?

          " if(JVM.installed()) " wird's wohl nicht geben - hm ?!

          Das mit () löschen hat nicht geklappt !
          Der Browser erkennt das Script dann als ein fehlerhaftes. Das muß also so heißen.

          Gruß
          Michael

          1. hallo michael
            ich weis jetzt nicht ob dir das weiter hilft aber wenn einer kein java -script
            an hat  dann kannst du mit java-script keine weiteren abfragen mehr machen
            oder ???????????? :-)
            mfg
            tobias

            1. Nein, Schluchz, Heul keuch, ich bin mit den Nerven fertig,...

              JAVA!!!!

              Pflatsch!

              Äh..

              Hallo

              (Das letzte war ein Eimer Wasser, der mich vom Schreikrampf berfreite;-)
              JavaScript ist das was du meinst. Das ist text und steht irgendwo im zwischen <SCRIPT></SCRIPT>
              Hier geht es um Java. Java ist eine Programiersprache, die compiliert werden muß
              (In Javabytecode) und mit der man Programme und auch Applets schreiben kann.
              (Tut mir leid, aber ich kanns einfach nicht mehr hören):-(((((

              Daniel

              1. Hey Daniel beherrsch Dich !

                Du hast recht - ja.
                Und mir ist das ja auch schon lange klar, was der Unterschied ist, und daß viele immer noch der Meinung sind, Java und Java-Script (eigentlich LiveScript) sind das selbe.
                Nur bringt mich das alles auch nicht weiter !

                Unter Netscape funktioniert dieses Skript allerdings !
                Aber nicht im Internet Explorer.

                Also ist mein Skript fehlerfrei !
                Nur der IE hat damit Probleme.
                Deswegen bin ich jetzt auf der Suche nach ner alternativen Abfrage für die Java-Fähigkeit des Browsers - kenne nur noch keine...

                Gruß
                Michael

          2. Hi Michael,

            nochmal zurück zu meinem ersten Vorschlag - hast Du ihn den überhaupt probiert? Hab noch mal drüber nachgedacht, m.E. liegt hier ein Tippfehler im SelfHTML vor -

            if(navigator.javaEnabled()) überprüft nur, ob denn die JS-Methode javaEnabled existiert - und das tut sie ja auch bei bei ausgeschaltetem Java

            if(navigator.javaEnabled) dagegen überprüft wirklich, ob Java aktiviert ist oder nicht

            Das erklärt auch das von Dir gerade beschriebene Verhalten - in den "else"-Zweig wird gesprungen, weil Dein Browser dir Methode ja kennt.

            Teste es doch bitte noch mal und gib Bescheid.

            Grüße,

            Utz

            1. Hi,

              grrrmmmbbbllll...quatsch, da hab ich mich völlig verrannt, ist natürlich genau andersrum, bitte das vorige Posting direkt in die Tonne treten. Ich versuche, wieder zu mir zu kommen...

              Grüße,

              Utz