Hallo Forum
Ich habe hier eine Erweiterung der 10. häufigsten JavaScript-Frage "Wie spreche ich Images in Layern (Netscape) an".
Das Ansprechen der Image-Objekte im Layer funktioniert in meinem Beispiel grundsätzlich richtig (siehe untere, nur rote Tabelle).
Ist jedoch der Layer in einer 2-fach geschachtelten Tabelle eingefügt (obere, gelb-rote Tabelle), enthält das entsprechende Image-Array keine Bilder mehr, das Image-Objekt lässt sich also nicht mehr ansprechen.
Der Source-Code:
<html>
<head>
<title>Test-Dok</title>
<script type="text/javascript" language="JavaScript">
<!-- JS-Funktion -->
function testImage(sLayerName)
{
if(document.layers)
{
iImgCount = document.layers[sLayerName].document.images.length;
alert("Anzahl Bilder im Layer: "+ iImgCount);
}
}
//-->
</script>
</head>
<body>
<!-- Layer in 2-fach geschachtelter Tabelle: Der Alert gibt 0 Bild-Objekte zurück -->
<table cellspacing="8" cellpadding="8" border="0" bgcolor="#ffffcc">
<tr>
<td> </td>
<td>
<table cellspacing="2" cellpadding="2" border="0" bgcolor="#ffccff">
<tr>
<td>
Bild in 2-fach geschachtelter Tabelle:
</td>
<td>
<div id="TestLayer" style="position:relative; z-index:1; visibility:show;">
<a href="#" onClick="testImage('TestLayer');return false;">
<img border="0" src="ima/perle.gif" width="80" height="80">
</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br><hr><br>
<!-- Layer in nur 1 Tabelle: Der Alert gibt die korrekte Anzahl Bild-Objekte zurück. -->
<table cellspacing="2" cellpadding="2" border="0" bgcolor="#ffccff">
<tr>
<td>
Bild in 1-fach geschachtelter Tabelle:
</td>
<td>
<div id="TestLayer2" style="position:relative; z-index:1; visibility:show;">
<a href="#" onClick="testImage('TestLayer2');return false;">
<img border="0" src="ima/perle.gif" width="80" height="80">
</a>
</div>
</td>
</tr>
</table>
</body>
</html>
Das Beispiel lässt sich auch online unter http://195.127.155.198/test/test2.htm abrufen.
Fragen:
- Was mache ich falsch ?
- Können andere Forumsteilnehmer das Verhalten mit Netscape reproduzieren (dazu einfach auf die Bilder klicken)?
- Gibt es einen Workaround (Bedingung: Ich brauche min. 2-fach geschachtelte Tabellen und ich muss die src-Eigenschaft des Image-Objektes ansprechen können, zwecks Mousover-Effekt)?
Ich hoffe, jemand kann mir dieses eigenartige Verhalten von Netscape erklären, bzw. eine Lösung für mein Problem aufzeigen kann.
Besten Dank im voraus.
Grüsse
Tom