Cita:
Iniciado por emprear Tenés muchas posibilidades. Lo primero que te recomiendo, e que para generar el código javascript utilices esta herramienta
[url]http://foros.emprear.com/javascript/generador_html_js/html2js.html[/url]
...
...
...
Una vez más, el Maestro Emprear tenía que resolver uno de mis problemas con javascript. Qué pasó, cómo estás compañero!
Estuve revisando el código que pones aquí arriba, y vi que en el fondo, toda la bronca nace al no escapar comillas, como decía el may (maycolalvarez). Pero no sólo las comillas, también las diagonales. Y con eso, el parser ya no se confunde con dónde empieza y dónde acaba el código de la función de la ventana padre...
El ejemplo que pones es amplio, y estudiándolo bien, permite aprender cómo interactúan las ventanas padre e hija.
Aprendí de tu código y ahora sí puedo ejecutar la función que yo quería que se ejecutara en la ventana hija, a saber, una función que contuviera un setTimeout:
Código HTML:
Ver original<input type="button" value="Abrir nueva ventana!" onclick="abrirVentana()" />
Y
Código Javascript
:
Ver originalfunction abrirVentana()
{
var ventana = window.open("", "ventana1", "width=300, height=200, scrollbars=no");
var strVar = "";
strVar = strVar + "<head>";
strVar = strVar + "<title>Ésta es una nueva ventana<\/title>";
strVar = strVar + "<script type=\"text\/javascript\">";
strVar = strVar + "function cerrarVentana()";
strVar = strVar + "{";
strVar = strVar + "window.close()";
strVar = strVar + "}";
strVar = strVar + "function cerrarVentanaAuto()";
strVar = strVar + "{";
strVar = strVar + "setTimeout(\"window.close()\", 3000)";
strVar = strVar + "}";
strVar = strVar + "<\/script>";
strVar = strVar + "<\/head>";
strVar = strVar + "<body onload=\"cerrarVentanaAuto()\">";
strVar = strVar + "<input type=\"button\" value=\"cerrar ventana\" onclick=\"cerrarVentana()\" />";
strVar = strVar + "<input type=\"button\" value=\"cerrar ventana después de 3 segs\" onclick=\"cerrarVentanaAuto()\" />";
strVar = strVar + "<\/body>";
ventana.document.write(strVar);
}
Dos cosas más y doy por solucionado este post, que de seguro le servirá a mucha gente.
1. En la ventana hija, si le doy clic al botón "cerrar ventana después de 3 segs", se ejecuta la función pertinente a la perfección. Pero si hago que se ejecute dicha función al cargarse esta ventana nueva, con el onload, no funciona. ¿Por qué?
2. Más exactamente, cómo funciona la herramienta que pones en el enlace http://foros.emprear.com/javascript/...s/html2js.html ?
.