Hola:
Lo que quieres es posible de hacer, simplemente debes tener algo mal en tu código...
Para casos así, yo prefiero crear una variable con todo el contenido primero y luego escribirlo, de hecho, así funciona el probador de scripts de esta página:
Probador de scripts
Por ejemplo:
var contenido = "<html>\n";
contenido += "<head><title>¡Hola Mundo!</title>\n";
contenido += "<script>\n";
contenido += "alert('Hola');\n";
contenido += "<" + "/script>\n";
contenido += "</head></body>\n";
contenido += "Hola";
contenido += "</body></html>";
ventana = window.open();
ventana.document.open();
ventana.document.write(contenido);
ventana.document.close();
Saludos