PDA

Ver la Versión Completa : Control de ventana secundaria


davich
27-06-2006, 09:57:02
Hola a tod@s!

Mi duda es esta.

Quiero que desde una ventana rellene unos campos de URL, tamaño y nombre en unos cuadros de texto y al pulsar un boton se abra una pagina nueva con las propiedades que le haya puesto.

Es decir, quiero rellenar estas propiedades desde unos Input:

<script>
window.open( [sURL] [, sName] [, sFeatures] )
</script>

No se como hacerlo.

Luego tambien debo controlar que pueda cerrar y recargar la ventana secundaria desde la ventana padre.

Gracias

dec
27-06-2006, 13:08:14
Hola,


<html>
<body>

<script type="text/javascript">

/* Variable global para guardar una referencia
a la ventana que abrimos, de manera que luego
podamos, por ejemplo, cerrarla
*/
var ventana = null;

/* Función que abre una ventana en base a los datos
que pueden definirse en el formulario HTML que se
verá más abajo.

Como se ve, nos limitamos a recoger los valores
de los diferentes "inputs" para a continuación
abrir una ventana, guardando una referencia a la
misma en la variable global correspondiente.
*/
function AbrirVentana()
{
var urlVentana = document.getElementById('urlventana').value;
var nombreVentana = document.getElementById('nombreventana').value;
var opcionesVentana = document.getElementById('opcionesventana').value;

ventana = window.open(urlVentana, nombreVentana, opcionesVentana);

return;
}

/* No he sido capaz de conseguir refrescar la ventana luego
de abierta. Lo que se pretende es refrescar el documento
que se muestre en la ventana, pero, he tratado de hacerlo
chapuceramente con el "document.location" y no consigo
sino un "acceso denegado" para acceder a dicho objeto.

Creo que la solución puede pasar por añadir mediante el
DOM (Document Object Model) al documento cargado en la
ventana, concretamente, entre las etiquetas "head", una
meta etiqueta "refresh" que se encarge de llevar a cabo
la actualización, pero, según escribo esto me entran
dudas de si esto funcionaría, y, en todo caso, no tengo
mucha idea de trabajar con el DOM y he sido incapaz
de añadir dicha meta etiqueta.
*/
function RefrescarVentana()
{
// sin implementar
return;
}

/* Cerrar la ventana es más o menos sencillo gracias al
método "Close" conque cuenta. Nos basta la referencia
de la ventana que habrá de cerrarse, pues, y esta la
guardamos en la variable global "ventana".
*/
function CerrarVentana()
{
if(ventana != null)
ventana.close();

return;
}

</script>

<div>

<!--

Formulario que nos sirve para poder determinar ciertas opciones
y valores necesarios para abrir la ventana en cuestión. Nada de
particular (bajo mi punto de vista), o sea, ningún comentario al
respecto.

-->
<form action="none" id="datosventana">
<fieldset>
<legend>
Datos para la nueva ventana
</legend>
<p>
<input type="text" name="urlventana" size="60" id="urlventana" value="http://www.google.es" />
<label for="urlventana">Url</label>
</p>
<p>
<input type="text" name="nombreventana" size="60" id="nombreventana" value="unaventana" />
<label for="nombreventana">Nombre</label>
</p>
<p>
<input type="text" name="opcionesventana" size="60" id="opcionesventana" value="toolbar=1,resizable=1" />
<label for="opcionesventana">Opciones</label>
</p>
<p>
<input type="button" onclick="AbrirVentana(); return false;" value="Abrir la ventana" />
<input type="button" onclick="CerrarVentana(); return false;" value="Cerrar la ventana" />
<input type="button" onclick="RefrescarVentana(); return false;" value="Refrescar la ventana" />
</p>
</fieldset>
</form>

</div>

</body>
</html>


Nota: Encierro el código entre etiquetas PHP para una mayor legibilidad del mismo: en realidad estamos tratando con código JavaScript y HTML, únicamente.

davich
27-06-2006, 17:59:58
Muchisimas gracias, me ha sido muy util. :D