MudGuard: +(JAVA) Versionserkennung in div. Browsern

Hi,

ich hab mal folgendes eigentlich einfaches Javascript gebastelt:

if (navigator.javaEnabled())
{
 alert("Java enabled");
 alert("Java Vendor:" + java.lang.System.getProperty("java.vendor"));
}

Funktioniert wunderbar in Opera (7.21, 7.53), Mozilla (1.7.3), Netscape (4.76) - aber nicht in IE (6.0).
Und gerade für den IE bräuchte ich es, denn nur dessen Microsoft VM kommt bei signierten Applets nur mit .cab statt mit den üblichen .jar zurecht.

IE zeigt nur "Java enabled" an, er behauptet dann, daß das Objekt java nicht existiert.
Und zwar unabhängig davon, ob die (uralte) Microsoft VM aktiviert ist oder die von Sun.
Java ist aktiviert, Applets funktionieren auch (wie ich anhand http://de.selfhtml.org/html/multimedia/anzeige/applet_eigenschaften.htm bzw. der lokalen Kopie davon geprüft habe)

Gibt es eine andere Lösung, an den Hersteller der VM zu kommen, OHNE ein komplettes Applet einzubinden? Mit einem Applet, das dann eine Javascript-Funktion aufruft, hab ich es schon hinbekommen, aber ich finde die Methode ohne das VM-Erkennungs-Applet wesentlich schöner ...

cu,
Andreas

--
MudGuard? Siehe http://www.Mud-Guard.de/
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  1. Hallo,

    Und gerade für den IE bräuchte ich es, denn nur dessen Microsoft VM kommt bei signierten Applets nur mit .cab statt mit den üblichen .jar zurecht.

    Hast Du dies http://java.sun.com/j2se/1.4.2/docs/guide/deployment/deployment-guide/upgrade-guide/article-15.html schon probiert?

    Gibt es eine andere Lösung, an den Hersteller der VM zu kommen, OHNE ein komplettes Applet einzubinden? Mit einem Applet, das dann eine Javascript-Funktion aufruft, hab ich es schon hinbekommen, aber ich finde die Methode ohne das VM-Erkennungs-Applet wesentlich schöner ...

    Wahrscheinlich gibt es keine andere Methode. Aber das Applet muss die gewünschten Funktionen nur public machen. Solche Funktionen eines eingebundenen Applets kann JavaScript auch im IE aufrufen.
    http://www.rgagnon.com/javadetails/java-0170.html

    viele Grüße

    Axel

    1. Hi,

      Danke für Deine Antwort.

      Und gerade für den IE bräuchte ich es, denn nur dessen Microsoft VM kommt bei signierten Applets nur mit .cab statt mit den üblichen .jar zurecht.
      Hast Du dies http://java.sun.com/j2se/1.4.2/docs/guide/deployment/deployment-guide/upgrade-guide/article-15.html schon probiert?

      Ja, ist bekannt. Das funktioniert wunderbar, bis das Applet eine Ressource anfordert, die nicht im .cab enthalten ist.
      Dann werden nämlich die .jar-Files doch noch angefordert und über die Leitung gesaugt. Und genau das gilt es zu vermeiden.
      Und das Applet, um das es hier geht, fordert externe Ressourcen an - die sich häufiger ändern. Deshalb liegen sie auch nicht in den signierten Archiven, weil dann nach jeder winzigen Änderung der Ressourcen die Archive komplett neu zum Client übertragen werden müßten.
      Es sind viele Modem-Benutzer, und die Archive sind einige hundert KB groß. Es ist also wirklich wichtig, daß nur dann neu übertragen wird, wenn es unumgänglich ist.

      Gibt es eine andere Lösung, an den Hersteller der VM zu kommen, OHNE ein komplettes Applet einzubinden? Mit einem Applet, das dann eine Javascript-Funktion aufruft, hab ich es schon hinbekommen, aber ich finde die Methode ohne das VM-Erkennungs-Applet wesentlich schöner ...
      Wahrscheinlich gibt es keine andere Methode. Aber das Applet muss die gewünschten Funktionen nur public machen. Solche Funktionen eines eingebundenen Applets kann JavaScript auch im IE aufrufen.

      Wie gesagt, die Methode mit VM-Erkennungs-Applet funktioniert bereits. Aber ich würde gerne auf dieses Applet verzichten, wenn es geht. Wenn das nicht machbar ist, muß es eben so bleiben wie es bisher ist - mit VM-Erkennungs-Applet.
      Denn die hat diverse Nachteile - einfach so die Methode aufrufen geht nicht, man muß erst abwarten, bis das Applet gestartet ist.
      Oder man läßt das Applet eine Javascript-Methode aufrufen - aber damit ist das Ergebnis nicht während des Dokument-Aufbaus verfügbar - document.write kann nicht mehr benutzt werden, um das eigentliche Applet-Element zu erzeugen.

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hi,

        ich kenne den Hintergrund ja nicht, aber hast Du berücksichtigt, daß gerade im IE bei höheren Sicherheitseinstellungen Javascript als erstes deaktiviert ist, während Java sogar bei deaktivierung von ActiveX (im Gegensatz z.B. zu Flash) ausgeführt wird?
        Oder anders gesagt: mein IE z.B. darf äußerst wenig, aber Java schon. Wenn Du das nun von Javascript abhängig machst, hättest Du zumindest mich ausgesperrt.

        freundliche Grüße
        Ingo

        1. Hi,

          ich kenne den Hintergrund ja nicht, aber hast Du berücksichtigt, daß gerade im IE bei höheren Sicherheitseinstellungen Javascript als erstes deaktiviert ist, während Java sogar bei deaktivierung von ActiveX (im Gegensatz z.B. zu Flash) ausgeführt wird?
          Oder anders gesagt: mein IE z.B. darf äußerst wenig, aber Java schon. Wenn Du das nun von Javascript abhängig machst, hättest Du zumindest mich ausgesperrt.

          Javascript ist in diesem Szenario aus anderen Gründen sowieso Voraussetzung (nicht meine Entscheidung ...)

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.