Kernellover:
Tu sintaxis es perfectamente adecuada para NS4, pero como te habrás deado ya cuenta, se trata de un browser un tanto melindroso.
No sé porque te funcionó el primer código, pero supongo que es porque antes de ese punto, estableces alguna propiedad a la capa que quieres modificar, o bien, tienes definido un estilo que establece propiedades a dicha capa.
El siguiente código, era la forma típica para que una etiqueta <div> se comportara para NS4 como una etiqueta <layer>.
Código:
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT>
function capa(){
var menucontenido="bla bla bla";
if (document.layers) {
document.ContMenu.document.menu.document.write(menucontenido);
document.ContMenu.document.menu.document.close();
}
}
</SCRIPT>
<STYLE TYPE="text/css">
<!--
#ContMenu {position:absolute;}
#menu {position:absolute; width:100; height:20; clip:rect(0,100,20,0);}
-->
</STYLE>
</HEAD>
<BODY>
<a href="javascript:capa()">Escribir</a>
<div id="ContMenu"><div id="menu"></div></div>
</BODY>
</HTML>
Como podrás ver, escribo a una capa dentro de otra capa sin mayor problema...
Recuerdo que sólo podías trabajar con aquellas capas que tenían una posición absoluta... Prueba poniendo en el estilo una posición relativa, y probablemente no pasará lo que esperas de la función... Además de que algunas versiones de NS4, tenían bugs que otras versiones no tenían... En fin... Si tu código es sólo para NS4, podrías usar en lugar de <div> la etiqueta <layer>...
Saludos.