Andreas Nikisch: Layer + JavaScript = merkwürdiges Verhalten?

Beitrag lesen

Hallo,

ich bin gerade dabei ein JS zu entwickeln, welches dynamisch einen Layer einfügt, der eine beliebige Datei nachladen soll und bin auf ein merkwürdiges Verhalten gestoßen.

Hier sind mal meine Dateien:

datei1.html:

<html>
<head>
<title></title>
</head>
<body bgcolor="#00cc00">
<div align="center">

<table>
<tr>
<td>
<table>
<tr>
<td>

<script>
document.write('<ilayer clip="0,0,300,200"><layer src="datei2.html" width=300 height=200></layer></ilayer>');
</script>

</td>
</tr>
</table>
</td>
</tr>
</table>

</div>
</body>
</html>
--------------------------

datei2.html:

<html>
<head>
<title></title>
</head>
<body bgcolor="#008000">

<table width="300">
<tr>
<td height="200" align="center" valign="middle">
Hallo :)
</td>
</tr>
</table>

</body>
</html>
--------------------------

Also in datei1.html soll datei2.html nachgeladen werden. Leider kann ich (für dieses JavaScript) keinen onLoad im <body> Tag machen, den Layer nicht direkt reinschreiben! Es soll allein mit dem eingefügten JavaScript funktionieren. Wenn ich die Seite nun lade steht "Hallo : )" gleich 2x da. Hat datei2.html ein Hintergrundbild, dann kann es passieren, dass dieses im ganzen Dokument dargestellt wird.

Mache ich nun folgendes in datei1.html:

<html>
<head>
<title></title>
</head>
<body bgcolor="#00cc00">
<div align="center">
<table>
<tr>
<td>
<table>
<tr>
<td>
<script>

document.write('<ilayer clip="0,0,300,200" id="lay1"><layer width=300 height=200 id="lay2"></layer></ilayer>');
window.setTimeout("document.lay1.document.lay2.load("datei2.html",300);",1);

</script>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
--------------------------

Dann klappt plötzlich alles. Allerdings gefällt mir die Lösung nicht so gut. Ist das überhaupt "legal"? Weiß jemand etwas besseres? Oder ist das eine brauchbare Lösung?

Vielen Dank!

Ciao,
Andy