Steffen Wolfrum: IMG-SRC-Zugriff bei CSS-Positionierung erzeugt Fehler unter Netscape

Wenn ich die verlinkte Grafik eines Bildlein-Wechsel-Dich-Beispiels in einen LAYER einbette, kann ich sie ja trotzdem ansprechen und der Bildwechsel funktioniert:

<HTML>
<HEAD>
<TITLE>Bildlein-Wechsle-Dich</TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
function preload(){
img_over = new Image()
img_over.src = "bild_over.gif"
}
function over(){
if (document.layers[0].document.images)
document.layers[0].document.grafik.src = img_over.src
}
function out(){
if (document.layers[0].document.images)
document.layers[0].document.grafik.src = "bild_out.gif"
}
preload()
//--></SCRIPT>
</HEAD>
<BODY>
<LAYER STYLE="z-index:1">
<A HREF="#" ONMOUSEOVER="over()" ONMOUSEOUT="out()">
<IMG SRC="bild_out.gif" NAME="grafik">
</A>
</LAYER>
</BODY>
</HTML>

Wenn ich aber Angaben zu einer absoluten Positionierung in den LAYER-STYLE einfüge...

STYLE="position:absolute;top:10px;left:10px;z-index:1"

... dann erscheint bei NetscapeNavigator 4.X (unter Windows und MacOs) stattdessen plötzlich die JavaScript-Fehlermeldung:

line 11: document.layers[0].document.grafik has no properties.

Wie kann das denn sein?
(Und wie kann man es vermeiden?)

  1. Wenn ich aber Angaben zu einer absoluten Positionierung in den LAYER-STYLE einfüge...

    STYLE="position:absolute;top:10px;left:10px;z-index:1"

    ... dann erscheint bei NetscapeNavigator 4.X (unter Windows und MacOs) stattdessen plötzlich die JavaScript-Fehlermeldung:

    Hallo Steffen,

    Soweit ich weiss, brauchst Du die style-Anweisung nur für den IE, da die Layer-Positionierung für Netscape im Layer-Tag selbst vorgenommen wird (<LAYER TOP=10 LEFT=20 VISIBILITY=INHERIT WIDTH=500 HEIGHT=2128 Z-INDEX=1>).

    Also könntest Du Deine Styleangaben über document.write ausgeben, mit der Abfrage:

    var BrowserName = navigator.appName;
    if (BrowserName=="Microsoft Internet Explorer")
    {
    document.write ('<STYLE>');
    ......
    }

    Vielleich funktioniert das so...
    Viel Erfolg :-)
    Alexis