Para abrir una ventana secundaria podemos hacerlo de dos maneras, con HTML y con Javascript. Veamos cada una de ellas
Abrir una ventana con HTML
Se puede conseguir abrir una ventana secundaria muy fácilmente con tan solo HTML. Para ello podemos utilizar el atributo TARGET de las etiquetas HREF. Si ponemos target="_blank" en el enlace, la página se abrirá en una ventana secundaria. También podemos poner target="xxx" para que el enlace se presente el la ventana llamada xxx o en el frame xxx.
El enlace tendría que tener esta forma:
<a href="mipagina.html" target="_blank">
El problema de abrir una página secundaria con HTML consiste en que no podemos definir la forma de ésta ni podremos ejercer mayor control sobre élla, tal como comentábamos entre las ventajas de abrir una ventana secundária con Javascript. La ventana que se abre siempre será como el usuario tenga definido por defecto en su navegador.
Abrir una ventana con Javascript
Para abrir una ventana con Javascript podemos utilizar la sentencia window.open(). No pasa nada por que no conozcas Javascript, puesto que es muy sencillo utilizarlo para este caso. Vamos a ver paso a paso cómo abrir una ventana secundaria utilizando Javascript.
1. Sentencia Javascript para abrir una ventana
La sentencia es simplemente la función window.open(), lo más complicado es saber cómo utilizar esa función, pero ahora veremos que no reviste ninguna complicación.
La función window.open() recibe tres parámetros, que se colocan dentro de los paréntesis, de este modo:
window.open(URL,nombre_de_la_ventana,forma_de_la_ventana)
Veamos rápidamente cada uno de estos parámetros por separado.
URL: representa el URL que deseamos abrir en la ventana secundaria, por ejemplo http://www.desarrolloweb.com
nombre_de_la_ventana: es el nombre que se le asigna a esta ventana para dirigir enlaces con el atributo target del HTML
forma_de_la_ventana: se indica el aspecto que va a tener la ventana secundaria. Por ejemplo se puede definir su altura, anchura, si tiene barras de desplazamiento, etc
Veamos un ejemplo de sentencia Javascript completa para abrir una ventana secundaria:
window.open("http://www.desarrolloweb.com" , "ventana1" , "width=120,height=300,scrollbars=NO")
Esto quiere decir que abra la página inicial de desarrolloweb.com en una ventana secundaria a la que vamos a llamar ventana1. Además, la ventana será de 120 pixels de ancho, 300 de alto y no tendrá barras de desplazamiento.
Una aclaración adicional, si después de abrir esa ventana colocamos otro enlace en la página que abría la ventana cuyo atributo target está dirigido hacia el nombre_de_la_ventana (en este caso ventana1), este enlace se mostrará en la ventana secundaria.
2. Función que abre una ventana
Lo más cómodo para abrir una ventana es colocar una función Javascript que se encarge de las tareas de abrirla y que reciba por parámetro la URL que se desea abrir.
El script es sencillo, veámoslo a continuación:
<script language=javascript>
function ventanaSecundaria (URL){
window.open(URL,"ventana1","width=120,height=300,scrollbars=NO")
}
</script>
3. Colocamos un enlace
Este enlace no debe estar dirigido directamente a la página que queramos abrir, sino a la sentencia Javascript necesaria para abrir la ventana secundaria. Para ejecutar una sentencia Javascript con la pulsación de un enlace lo hacemos así:
<a href="javascript:sentencia_javascript_para_abrir_la_ventana">
4. El enlace llama a la función que abre la ventana
Ahora Veamos cómo quedaría todo ese enlace en la página.
<a href="javascript:ventanaSecundaria('http://www.desarrolloweb.com')"> Pincha en este enlace para abrir la ventana secundaria</a>
Que da como resulado:
| Width | Ajusta el ancho de la ventana. En pixels |
| Height | Ajusta el alto de la ventana |
| Top | Indica la posición de la ventana. En concreto es la distancia en pixels que existe entre el borde superior de la pantalla y el borde superior de la ventana. |
| Left | Indica la posición de la ventana. En concreto es la distancia en pixels que existe entre el borde izquierdo de la pantalla y el borde izquierdo de la ventana. |
| Scrollbars | Para definir de forma exacta si salen o no las barras de desplazamiento. scrollbars=NO hace que nunca salgan. Scrollbars=YES hace que salgan (siempre en ie y solo si son necesarias en NTS). |
| Resizable | Establece si se puede o no modificar el tamaño de la ventana. Con resizable=YES se puede modificar el tamaño y con resizable=NO se consigue un tamaño fijo. |
| Directories (barra directorios) |
A partir de aquí se enumeran otra serie de propiedades que sirven para mostrar o no un elemento de la barra de navegación que tienen los navegadores más populares, como podría ser la barra de menús o la barra de estado.
Cuando ponemos el atributo=YES estamos forzando a que ese elemento se vea. Cuando ponemos atributo=NO lo que hacemos es evitar que ese elemento se vea. |
| Location (barra direcciones) |
|
| Menubar (barra de menús) |
|
| Status (barra de estado) |
|
| Titlebar (la barra del título) |
|
| Toolbar
(barra de herramientas) |
|
Referencias: Hemos publicado un manual en DesarrolloWeb.com que explica en detalle cómo controlar ventanas secundarias. No solo abrirlas, también aprendemos a cerrarlas, comunicar entre ventanas, etc.
Control de ventanas en Javascript
También hemos propuesto crear un popup con Javascript y capas (DHTML), que evita los sistemas que bloquean ventanas secundarias, ya que no es exactamente una ventana. |
| Por: J.Isach | 09/8/2001
|
Para ello utilizo la funcion setTimeout de javascript, que recibe como parametros la instruccion a ejecutar y el tiempo de retardo en milisegundos.
setTimeout("window.open('http://www.desarrolloweb.com','w','width=500,height=400')",6000)
Al pulsar este boton se abre una ventana con retardo de 6 segundos
| Por: David Masip | 16/7/2002
|
Me preguntaba si podrias decirme como puede escribir la URL de manera que me busque las páginas tanto en local como cuando esta en Web.
RESPUESTA:
Si quieres que encuentre las páginas tanto en local como el la web debes escribir los caminos relativos a la página donde estás abriendo la ventana, en lugar de caminos absolutos.
La idea es que, en la URL, sólamente indiques el nombre del archivo que deseas abrir, sin especificar ningún directorio, pues me dices que todas las páginas están en el mismo directorio.
| Por: Joaquín Sastre | 26/7/2002
|
window.open("http://www.xx.com","","fullscreen,scrollbars")
| Por: Fabiaán | 26/3/2003
|
RESPUESTA
Pues deberías escribir el código en cualquier lugar de la página. Pero fíjate de colocar el código en vista código y no en vista diseño, puesto que si lo haces en vista diseño saldría escrito el código en la página en lugar de no salir nada y abrir el popup, que es lo que debería pasar.
De todos modos, te indico que Dreamweaver tiene una serie de comportamientos muy útiles entre los que se encuentra la apertura de ventanas secundarias. Posiblemente te sea más sencillo utilizarlos en lugar de colocar tu mismo el código Javascript.
| Por: JGM | 02/3/2004
|
| Por: Jesus Alfredo Moran | 27/3/2004
|
| Por: Armando Salinas | 21/4/2005
|
| Por: Joel Cortes | 26/5/2005
|
| Por: Anibal | 30/5/2005
|
| Por: SilentHades | 11/6/2005
|
| Por: lisandro | 06/7/2005
|
| Por: jonas | 09/7/2005
|
| Por: David Girona | 16/12/2005
|
| Por: Alejandro Hernández | 06/5/2006
|
| Por: BoKe | 19/7/2006
|
| Por: Andrés González Tenorio | 28/9/2006
|
| Por: Luis | 23/3/2007
|
![]() juanchi... | JavaScript + php + BD | 21/11/2009 |
![]() kiosera | Ventanas secundarias bloqueadas por los navegadores | 27/7/2010 |
![]() manuel_... | ventanas | 19/8/2010 |
![]() ibanete | abrir pagina desde el escritorio | 08/6/2011 |