En el documento A.html tengo el siguiente HTML:
Código HTML:
<input type="button" value="Abrir nueva ventana!" onclick="abrirVentana()" />
Código Javascript:
Ver original
function abrirVentana() { var ventana = window.open('', 'ventana', 'width=640, height=480'); ventana.document.write('<head><title>Título nueva ventana</title></head>'); ventana.document.write('<body>'); ventana.document.write('<div id="contenedor">'); ventana.document.write('<input type="button" value="Cerrar la nueva ventana" onclick="cerrarNuevaVentana()" />'); ventana.document.write('</div>'); ventana.document.write('</body>'); }
Lo que quiero hacer es que al dar clic en el botón contenido en esta nueva ventana, se ejecute una función javascript, la que sea, no importa, por ejemplo, una que cierre esta misma ventana. Para esto, el código javascritpt anterior no me sirve, porque sólo crea la nueva ventana, y ésta no tiene nada, excepto un botón miserable que no va a ejecutar nada porque dentro de esa nueva ventana no hay código javascript qué ejecutar.
Se me ocurrió que puedo escribir código javascript dentro de esa nueva ventana empleando el mismo document.write al momento de crear esa nueva ventana. Entonces, modifico el código javascript anterior de esta manera:
Código Javascript:
Ver original
function cerrarNuevaVentana() { var ventana = window.open('', 'ventana', 'width=640, height=480'); ventana.document.write('<head><title>Título de nueva ventana</title>'); ventana.document.write('<script type="text/javascript">'); ventana.document.write('function cerrarNuevaVentana()'); ventana.document.write('{'); ventana.document.write('Aquí el código de la función'); ventana.document.write('}'); ventana.document.write('</script>'); ventana.document.write('</head>'); ventana.document.write('<body>'); ventana.document.write('<div id="contenedor">Contenido del div contenedor</div>'); ventana.document.write('<input type="button" value="Quitar div contenedor!" onclick="borrarContenidoDeNuevaVentana()" />'); ventana.document.write('</body>'); }
Pero no funciona!
Cuando ejecuto el archivo A.html, el cual contiene la función abrirVentana(), en pantalla aparece parte del código javascript. Lo que indica que no es posible escribir código javascript dentro de document.write.
¿Cómo #$%&#$ le hago entonces para que la nueva ventana ejecute una función cualquiera?