Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando, consideramos que acepta su uso.
Las cookies de este sitio web se usan para personalizar el contenido y los anuncios, ofrecer funciones de redes sociales y analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de redes sociales, publicidad y análisis web, quienes pueden combinarla con otra información que les haya proporcionado o que hayan recopilado a partir del uso que haya hecho de sus servicios. Puede cambiar la configuración u obtener más información aquí

Aceptar

Google

tunait.com » Tutorial » ventanas pop-up


Cómo crear una ventana pop-up (II)

Cómo crear una ventana pop-up (I)

Usando la función para abrir más de un documento

Si queremos usar la misma función para abrir la ventana más de una vez con distintos documentos cargados dentro de ella podemos agregarle una variable a la función que le pasaremos como argumento cuando la llamemos.


function ventanaNueva(documento){	
	window.open(documento,'nuevaVentana','width=300, height=400');
}

Y al llamar a la función desde los distintos botones le pasamos el dato como parámetro.

Botón 1
<input type="button" value="Abrir ventana" onclick="ventanaNueva('pagina1.html')" />

Botón 2
<input type="button" value="Abrir otra ventana" onclick="ventanaNueva('pagina2.html')" />

Usando la función para abrir la ventana más de una vez con distintas dimensiones

Podemos usar la misma función para que, además, cada ventana que sea abierta desde distintos botones tenga dimensiones distintas. Le enviaremos los valores que queramos pasados como argumentos a la función y haremos una concatenación para crear la cadena de atributos.


function ventanaNueva(documento,ancho,alto){
   window.open(documento,'nuevaVentana','width=' + ancho + ', height=' + alto);
}

Y al llamar a la función desde los distintos botones le pasamos los datos de ancho y alto como parámetros.

Botón 1
<input type="button" value="Abrir ventana" onclick=" ventanaNueva('pagina1.html', 300, 400)" />

Botón 2
<input type="button" value="Abrir otra ventana" onclick=" ventanaNueva('pagina2.html', 420, 550)" />

Haciendo referencia a la ventana

Si por alguna razón una vez abierta nuestra ventana necesitamos hacer algo con ella desde Javascript debemos de poder referirnos a ella de algún modo. Para eso está el segundo parámetro de la función open() que define el nombre de la ventana; en el caso del ejemplo que hemos estado usando la ventana se está llamando nuevaVentana aunque podríamos haberla llamado vladimir o leporcia.

Si una vez abierta quisiéramos hacer algo con ella, como por ejemplo cerrarla usando el método close() mediante otro botón nos referiríamos a ella por el nombre que le hayamos asignado al momento de crearla.

onclick="nuevaVentana.close()"

Abrir distintas ventas distintas desde la misma función

Podemos enviar otra variable más como argumento a nuestra función del ejemplo para asignar distintos nombres a cada ventana que abramos desde un botón diferente. Con eso lograremos que se abran ventanas distintas, algo que no sucede si cada vez que llamamos a la función nos crea la ventana nueva con el mismo nombre, como ha estado haciendo la función del ejemplo hasta ahora.


function ventanaNueva(documento,ancho,alto,nombreVentana){
    window.open(documento, nombreVentana,'width=' + ancho + ', height=' + alto);
}
     

Botón 1
<input type="button" value="Abrir ventana" onclick="ventanaNueva('pagina1.html', 300, 400, 'ventana1')" />

Botón 2
<input type="button" value="Abrir otra ventana" onclick="ventanaNueva('pagina2.html', 420, 550, 'ventana2')" />


De esta forma cada botón abrirá una ventana distinta con distintos documentos cargados en cada una de ellas.

La función tal y como estaba antes abría los distintos documentos desde los diferentes botones cargando documentos diferentes pero los abría en la misma ventana, es decir, en ningún momento podrían haber dos ventanas abiertas a la vez dado que se estaban abriendo siempre con el mismo nombre. Si en el momento de llamar por segunda vez a la función la ventana aún se encontraba abierta (no se había cerrado) el segundo documento sería cargado dentro de esa ventana ya abierta.

Al asignar en cambio un nombre distinto para cada ventana sí puede haber más de una ventana abierta simultáneamente.

Usando links para abrir ventanas.

Es importante que toda la información sea accesible y se pueda acceder al recurso al que se pretende llegar y no es recomendable delegar al 100% a Javascript el acceso a un recurso. Podemos usar un link al documento que queramos mostrar dentro de nuestra ventana pop-up; de esta forma nos aseguramos de que, en el caso de estar siendo visualizada nuestra página en algún dispositivo sin soporte para Javascript, nuestro documento pueda ser llamado de forma alternativa desde este link.

La forma más simple de hacerlo usando la misma función del ejemplo es la siguiente:

<a href="pagina.html" target="ventana1" onclick="ventanaNueva ('', 300, 400, 'ventana1');"> pagina </a>

En el evento click llamamos a la función creando una ventana pop-up asignándole un nombre ventana1 y al link le hemos agregado un target hacia esa ventana. Así el link al ser activado carga el documento dentro de la ventana que abrimos desde el manejador de eventos onclick. Observar que al llamar a la función no es necesario indicar el documento que queremos que se cargue y lo dejamos como una cadena vacía '' (dos comillas simples). Como en realidad lo que estamos haciendo es desviar el destino del link a la ventana nueva no es necesario indicarle a la función Javascript que debe cargar un determinado documento pues ya se encarga el propio link de hacerlo.

Cómo crear una ventana pop-up (I)

 


Copyright © 2006 www.tunait.com todos los derechos reservados