Klassmann: NC 4x nimmt kein onMouseOver wenn absolut positioniert (CSS)

Hallo zusammen,

habe folgendes Problem. Ein Bild steht innerhalb eines <div>-Tags, indem wiederum ein style definiert wird, der das Bild absolut positioniert. Das macht der 4er Netscape soweit ja auch ganz fein. Allerdings kann ich den Bildern dann kein onMouseOver mehr zuweisen. Jedenfalls keinen mehr, der die Quelle für das Bild ändert...

Also die klassische Lösung onMouseOver-Bildwechsel klappt nach der absoluten positionierung nicht mehr.

Hat vielleicht jemand eine Lösung dafür? Oder eine andere Idee?

Ich habe auch schon versucht, den Style als Klasse zu definieren, ohne Erfolg.

Danke schonmal...

  1. Moin!

    habe folgendes Problem. Ein Bild steht innerhalb eines <div>-Tags, indem wiederum ein style definiert wird, der das Bild absolut positioniert. Das macht der 4er Netscape soweit ja auch ganz fein. Allerdings kann ich den Bildern dann kein onMouseOver mehr zuweisen. Jedenfalls keinen mehr, der die Quelle für das Bild ändert...

    Doch, das Mouseover funktioniert ganz wunderbar. Wenn du in die Funktion mal ein "alert('es geht');" reingeschrieben hättest, wäre dir das auch aufgefallen.

    Das Problem ist: Netscape sieht den Layer als eigenständiges Dokument an.

    Du mußt also nicht mit
    document.images...
    zugreifen, sondern mit
    document.layers['layername'].document.images...
    bzw.
    document.layername.document.images...

    Das aber NUR, wenn es sich um Netscape 4 handelt. Zum Glück kriegt man das bei diesem Problem relativ einfach raus:
    if (document.layers)
    {
    //Netscape4-Lösung
    }
    else
    {
    //normale Lösung
    }

    Für dein Bildtauschscript bedeutet das: Entweder hast du nur Bilder innerhalb eines Layers zu tauschen, dann kannst du den Layernamen fest in die Funktion schreiben, oder du hast verschiedene Layer - dann mußt du den Layernamen eben der Funktion mit übergeben, so wie hier:

    function changeImage(imgName,imgObj,layerid)
      {
      if (document.images[imgName])
        {
        document.images[imgName].src = eval(imgObj+".src");
        }
      else if (document.layers)
        {
        document.layers[layerid].document.images[imgName].src = eval(imgObj+".src");
        }
      }

    Diese Funktion prüft, ob es das Bild gibt, und wenn nicht, dann kann es sich eben noch um Netscape 4 handeln, der Extrabehandlung benötigt. Der Test auf die Existenz des Bildes verhindert unschöne Javascript-Fehler, wenn man sich mal vertippt hat oder irgendwas schiefläuft.

    - Sven Rautenberg

    1. Danke dafür.
      Stimmt! Ich habe generelle onMouseOver-Funktionen gar nicht getestet... Jetzt wo Du es sagts... Aber Hey, es war spät :-)

      Ich werde es dann gleich mal einbasteln.

      Danke nochmal