Abrir PopUp o ventana emergente desde Flash

FlashPara poder abrir un PopUp o una ventana emergente desde Flash es necesario hacer una llamada a una función de JavaScript, la cual debe estar en el HTML/PHP/página donde se carga el SWF.

El siguiente código deberá insertarse dentro de los tags de <head> y </head>:

<script><!--
	function abreVentana(pagina, nombre_ventana, ancho, alto, mostrar_statusbar, mostrar_menubar, mostrar_scrolls, redimensionar, mostrar_toolbar, mostrar_direccion)
	{
		var opciones = "top = 0, left = 0, width = " + ancho + ", height = " + alto + ", status = " + mostrar_statusbar + ", menubar = " + mostrar_menubar +  ", scrollbars = " + mostrar_scrolls + ", resizable = " + redimensionar + ", toolbar = " + mostrar_toolbar + ", location = " + mostrar_direccion;
		window.open(pagina, nombre_ventana, opciones);
	}
// --></script>

La función abreVentana recibe 10 parámetros/argumentos, si bien estos parámetros podrían dejarse fijos dentro de la función de JavaScript, hacerlo de la forma como está escrito arriba le da el manejo a los archivos SWF de abrir las ventanas con las opciones que nosotros queramos. Imaginemos que tenemos dos SWFs en un mismo HTML y esos dos SWFs tienen que abrir dos ventanas emergentes de diferente tamaño; al hacerlo de esta forma no tendríamos que cambiar la función de JavaScript ni crear una nueva, simplemente tenemos que definir las propiedades de la ventana emergente dentro de los botones de nuestro JavaScript.

Los nombres de los parámetros que recibe la función son bastante explicativos, aún así explicaremos cada uno de ellos:

» pagina: URL de la página que se desea abrir en el PopUp
» nombre_ventana: Nombre de la vetana emergente o PopUp. Por ejemplo, suponiendo que tenemos dos botones y que uno abrirá la página “Contacto” con tamaño 400 x 250 y otro abrirá la página “Acerca de Nosotros” con tamaño 500 x 350. Si les pusieramos el mismo nombre de ventana y primero abriéramos la página de Contacto, al darle click al segundo botón y abrir la página de “Acerca de Nosotros” se nos estaría abriendo en la ventana de Contacto a un tamaño de 400 x 250
» ancho: Ancho (Width) en pixeles del tamaño de la ventana
» alto: Alto (Height) en pixeles del tamaño de la ventana
» mostrar_statusbar: yes si queremos que muestre la barra de estatus, no en caso contrario
» mostrar_menubar: yes si queremos que muestre la barra de menú, no en caso contrario
» mostrar_scrolls: yes si queremos que muestre los scrollbars, no en caso contrario
» redimensionar: yes si queremos que el usuario pueda redimensionar la ventana, no en caso contrario
» mostrar_toolbar: yes si queremos que muestre la barra de herramientas, no en caso contrario
» mostrar_direccion: yes si queremos que muestre la barra de navegación, no en caso contrario

Nota Aunque se especifiquen estas propiedades dentro de una ventana emergente, es posible que algunas de estas propiedades no funcionen debido a la configuración personal del navegador del visitante.

Una vez insertado el código JavaScript, debes poner el siguiente código en nuestro botón de Flash (solamente debes cambiar el valor de los parámetros de la función de acuerdo a tus necesidades):

on(release) {
     getURL("javascript:abreVentana('nombre_pagina.html', 'nombre_ventana', '500', '300', 'no', 'no', 'no', 'yes', 'no', 'no');");
}

Nota La configuración de seguridad de tu Flash Player y navegador puede impedir que abras una ventana emergente de forma local. Si es tu caso entonces deberás subir tus archivos a un servidor y probarlo desde ahí.

Este archivo requiere Flash Player 8
Ver Ejemplo Descargar Archivo

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
30 Responses
  1. MAZ dice:

    Muchisimas gracias Carla; tu codigo esta funcionando perfectamente con IE9

    Saludos desde Mexico.

  2. Diego dice:

    Saludos desde Argentina.
    He probado tu codigo para abirr ventanas emergentes, y funciona a la perfeccion en Firefox y Google Chrome, pero no he conseguido hacerlo funcionar en Internet Explorer, al igual que algunos comentarios anteriores.
    Queria saber, en lo posible, me dijeran cual es la solucion, si la encontraron, para hacer que funcione este codigo en el Explorer. Este ultimo me da el mismo error que comentaron antes, cuando se llama a window.open.
    Te estare infinitamente agradecido. Felicitaciones por la pagina, muy util y comoda de navegar.
    Saludos
    Diego.

  3. Novatuserum dice:

    Disculpa, lo más importante, estoy usando el Firefox y cuando intento abrir la ventana emergente, no actúa y sin embargo cuando ejecuto el archivo swf, es entonces cuando abre una página sin dirección en el navegador.

    Ahora creo que está más digerible.

    Gracias Carla.

  4. Novatuserum dice:

    Saludos Carla, Gracias por tu inagotable paciencia.

    ¿Como no? Tengo un problema, no soy capaz de encontrar el motivo por el que no puedo abrir el popup que le indico. El caso es que me abre una página en blando y no presenta ninguna dirección en el navegador, no se que estoy haciendo mal.

    Me puedes ayudar, gracias por todo.

  5. Hola Richard,

    ¿Qué es lo que llevas? ¿Qué problema tienes?

    Saludos.

  6. Richard Diaz dice:

    Hola Amiga Carla Macias, tengo un problema y es el siguiente necesito abrir una ventana con popup desde un archivo flash en AS2 (swf) que a su vez contendrá (en le popup) un archivo flash en AS3(swf) de forma local en el disco duro. Esto para poder cerrar la pagina en AS3 y poder regresar a la aplicación con AS2 sin problemas de compatibilidad con las funciones…. En lo que me pudiera ayudar o guiar se lo agradeceré.

  7. Gabriel dice:

    Bueno, investigando un poco encontré que iexplore me da “argumento no válido” en window.open(pagina, nombre_ventana, opciones).
    Ahora, ni idea cual parámetro está erróneo y en que punto.
    Lo que hice fue utilizar el código pero no hacerlo “genérico” o sea: defino la función abreChat() y a window.open le predefino los parámetros.
    Me cansé y lo dejo así :P
    Gracias.

  8. Gabriel dice:

    Carla:
    La página anda perfecto, como dije: cuando termina de cargar completamente no hay errores, sólo cuándo se acciona sobre este botón. Y fue probada con anterioridad a esta modificación y estaba todo ok.
    Saludos.

  9. Gabriel:

    ¿Ya abriste esta página en IE y probaste que funcionara?
    Si es así entonces es probable que te equivocaras al modificar el código.

    Saludos.

  10. Gabriel dice:

    Buenas noches, seguí tu ejemplo y en firefox funciona correctamente hasta el momento. Pero el problema está con iexplore y como es el que usa la mayoría, es preocupante.
    A ver, el botón flash tiene el siguiente código:

    on(release){
    getURL(“javascript:abreVentana(‘chat.html’, ‘Live-Help’, ’270′, ’250′, ‘no’, ‘no’, ‘no’, ‘yes’, ‘no’, ‘no’);”);
    }

    Y en la página principal está el código que expusiste.
    Al cargar la página con iexplore, el status bar me indica “Listo”, como que no hubo errores y cuando le doy al botón correspondiente que abre el pop-up, el estado cambia a “Listo pero con errores” y no abre nada.
    Indicame como puedo iniciar un depurador en iexplore y te muestro la salida por si sirve de algo.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>