Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   Control de ventana secundaria (https://www.clubdelphi.com/foros/showthread.php?t=33081)

davich 27-06-2006 08:57:02

Control de ventana secundaria
 
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 12:08:14

Hola,

Código PHP:

<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(urlVentananombreVentanaopcionesVentana);

  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 16:59:58

Muchisimas gracias, me ha sido muy util. :D


La franja horaria es GMT +2. Ahora son las 05:49:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi