Michael Schröpl: java-script problem mit ns6

Beitrag lesen

Hi,

Kann mir jemand helfen? Habe von Java eigentlich keine
Ahnung,

macht nichts - Dein Problem ist JavaScript und kein Java. ;-)

aber auf meiner Startseite http://www.schuster-home.de einen
Alien, der den Mauszeiger verfolgt.
Leider funktioniert das script unter ns6 nicht mehr.
Was kann ich ändern?

ziemlich viel.

Das Problem ist, daß beide verwendete Methoden, sowohl die für Netscape 4 als auch die für den M$, proprietäre Verfahren sind, mit dynamischem HTML umzugehen.

Statt dieser beiden Methoden gibt es inzwischen einen Standard namens DOM, welchen Netscape 6 unterstützt (moderne M$IE auch schon einigermaßen). Diese Methode müßtest Du lernen - und das Skript entsprechend umschreiben.

Das alles setzt aber viel "Verstehen" voraus ...

var Ver4=parseInt(navigator.appVersion.charAt(0))>=4

Und was ist mit den Browsern, deren Versionsnummer kleiner als 4 ist (Konqueror etc.) ?

var IE=navigator.appName.indexOf("Microsoft")!=-1

Tja, das ist schon mal keine gute Methode, da bestimmte Browser (Opera!) sich auf diese Weise als M$IE tarnen können.

Die ganze Positions-Rechnerei kannst Du beibehalten, die ist nicht vom Browser abhängt. Erst wenn Du etwas ausgibst, wird es nicht mehr funktionieren.

// Grafik und Position setzen
if (Ver4)
{ if (!IE)

... das hier ist der Fall "nicht M$IE".
In dem behandelst Du bisher nur Netscape 4; hier mußt Du jetzt zwischen Netscape 4 und Netscape 6 unterscheiden.

{ document.AlienLayer.document.images.alien.src=imagesrc }

Tja, diesen Layer gibt es halt nur in Netscape 4.

else

document.all.AlienLayer.document.images.alien.src=imagesrc

}

Der M$IE-Fall kann so bleiben.

function MeinMausEvent(e)
{ // Position des Maus-Cursors ermitteln
  if (Ver4)
  { if (!IE)

auch das hier ist bisher den Netscape-4-Zweig - ob da eine Netscape6-Variante notwendig ist, wäre zu prüfen.

// Globale Variablen setzen und Maus-Event initialisieren
  if (Ver4)
  { if (!IE)
    { al=document.AlienLayer
      document.captureEvents(Event.MOUSEMOVE)

Ich fürchte, auch das wird in Netscape 6 nicht so gehen.

(http://selfhtml.teamone.de/javascript/intro.htm)

Viel Spaß beim DOM-Lernen
     Michael