boeschung: document.write funktioniert im NS nicht

Hallo,

kann mir jemand sagen, warum folgendes im NS nicht funktioniert bzw. was ich machen muß, damit es funktioniert?

<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function myFunc() {
document.open();
document.write("<form action='#'>");
document.write("<div id='block_2' style='position:absolute;left:100px;top:100px;visibility:visible;z-index:2'>");
document.write("<select name='select'>");
document.write("<option>DeinName</option>");
document.write("<option>MeinName</option>");
document.write("</select>");
document.write("</div>");
document.write("</form>");
document.close();
}
//-->
</script>
</head>
<body>
<div id="block_1" style="position:absolute;left:1px;top:1px;visibility:visible;z-index:1">
<script type="text/javascript">myFunc();</script>
</div>
</body>
</html>

Kann mir dazu jemand einen Tipp geben?

Gruß
boeschung

  1. Hallo,

    kann mir jemand sagen, warum folgendes im NS nicht funktioniert bzw. was ich machen muß, damit es funktioniert?

    Lass mal die open und close weg. Du willst ja wohl kein neues Dokument schreiben, oder?

    By
    Reinhard

  2. Hallo

    function myFunc() {
    document.open();
    document.write("<form action='#'>");

    Das Element muss nach dem absolut positionierten Div stehen.

    Grund: siehe dazu: http://selfhtml.teamone.de/javascript/objekte/layers.htm#document

    document.write("<div id='block_2' style='position:absolute;left:100px;top:100px;visibility:visible;z-index:2'>");

    Verwende keinen Unterstrich innerhalb der id-Angabe.

    document.write("<select name='select'>");
    document.write("<option>DeinName</option>");
    document.write("<option>MeinName</option>");
    document.write("</select>");
    document.write("</div>");
    document.write("</form>");

    Tausche hier div- und Formendetag.

    document.close();
    }
    //-->
    </script>
    </head>
    <body>
    <div id="block_1" style="position:absolute;left:1px;top:1px;visibility:visible;z-index:1">

    Wieder ein Unterstrich zuviel.

    <script type="text/javascript">myFunc();</script>
    </div>

    Da Netscape eine eigenes Dokumentenmodell im Layer hat, muß die Funktion mit window.myFunc() aufgereufen werden.

    Ausserdem muß natürlich jeder Aufruf von document.open(),document.write etc. mit
    document.block1.document.write() auf den Layer Block1 referenziert werden.

    Viele Grüße

    Antje