Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2013, 12:16
Avatar de berkeleyPunk
berkeleyPunk
 
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 9 meses
Puntos: 22
Pregunta ¿Cómo escribir código javascript dentro de una nueva ventana creada con javascript??

Estoy creando un sitio que se vuelve cada vez más complejo y ahora me encuentro con esta bronca.
En el documento A.html tengo el siguiente HTML:
Código HTML:
<input type="button" value="Abrir nueva ventana!" onclick="abrirVentana()" /> 
Cuando se le da clic a este botón se ejecuta la siguiente función javascript que abre una nueva ventana:

Código Javascript:
Ver original
  1. function abrirVentana()
  2.     {
  3.         var ventana = window.open('', 'ventana', 'width=640, height=480');
  4.         ventana.document.write('<head><title>Título nueva ventana</title></head>');
  5.         ventana.document.write('<body>');
  6.         ventana.document.write('<div id="contenedor">');
  7.         ventana.document.write('<input type="button" value="Cerrar la nueva ventana" onclick="cerrarNuevaVentana()" />');
  8.         ventana.document.write('</div>');
  9.         ventana.document.write('</body>');
  10.     }

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
  1. function cerrarNuevaVentana()
  2.     {
  3.         var ventana = window.open('', 'ventana', 'width=640, height=480');
  4.         ventana.document.write('<head><title>Título de nueva ventana</title>');
  5.         ventana.document.write('<script type="text/javascript">');
  6.        ventana.document.write('function cerrarNuevaVentana()');
  7.             ventana.document.write('{');
  8.             ventana.document.write('Aquí el código de la función');
  9.             ventana.document.write('}');
  10.             ventana.document.write('</script>');
  11.         ventana.document.write('</head>');             
  12.     ventana.document.write('<body>');
  13.         ventana.document.write('<div id="contenedor">Contenido del div contenedor</div>');
  14.     ventana.document.write('<input type="button" value="Quitar div contenedor!" onclick="borrarContenidoDeNuevaVentana()" />');
  15.         ventana.document.write('</body>');
  16.     }

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?