Evitar el bloqueador de popups

Por casualidad he descubierto como burlar al bloqueador de popups de Firefox, y Opera. Y así conseguir abrir tantas ventanas emergentes como nos plazca.

En las diferentes configuraciones donde lo he probado, el sistema ha funcionado sin problemas. Siempre bajo Windows, con Flash 7 y diferentes versiones de Firefox y Opera. Sorprendentemente Internet Explorer 6, detecta sin problemas el "truco".

La idea es bien simple. Se trata de hacer que el encargado de abrir el popup no sea directamente la página HTML que estamos visualizando, sino un elemento Shockwave.

Sería algo así:

1) Incrustamos una llamada al Flash que se encargará de abrir el popup.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width=1 height=1>
<param name="movie" value="images/05/06/swf_popup.swf">
<param name="quality" value="high">
<embed src="images/05/06/swf_popup.swf" quality="high" width=1 height=1 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
</object>

2) Publicamos el Flash que usando Javascript abre el popup.
getURL("javascript:window.open('http://www.javiergutierrezchamorro.com', 'wndOpen', 'width=700,height=500'); void(0);");

Me extraña muchísimo que esta "funcionalidad", no sea explotada en sitios de dudosa ética cuando detectan que el usuario usa Firefox u Opera. Por otro lado, imagino que el problema no tardará más de 4 semanas en quedar resuelto.

Siento curiosidad por saber como se comporta este código con otros navegadores y sistemas operativos. No os cortéis, y publicad un comentario con vuestros resultados.

Puedes verlo en funcionamiento, o descargarte los fuentes (5 Kb en formato ZIP).

13 comentarios en “Evitar el bloqueador de popups”

  1. Usando Firefox en Windows con el plugin de Flashblock no funciona. Cuando se activa el flash da un error de JavaScript.

  2. Lo he comprobado en un Windows XP con Firefox 1.0.3, y no me abre el popup. De hecho, ni siquiera me ejecuta el código Javascript que debería mostrar al alert().

    En Opera sigue funcionando.

    Miraré a ver cual es el motivo por el que con algunos Firefox funciona el Javascript desde Flash, y con otros no.

  3. He podido comprobar como en dos Firefox (1.0.3 y 1.1 alpha), las llamadas a Javascript desde un Flash incrustado no funcionan.

    Para probarlo, no hay más que incrustar un Flash con el código:
    getURL("javascript:alert();");

    Al cargar la página, Firefox no mostrará el alert, mientras que con Internet Explorer y Opera si que lo hace.

    Lo que me lleva a pensar en un bug de Firefox en si, ya que el plugin de Flash que usan Opera y Firefox es el mismo, y con el Opera funciona. Pensándolo bien, tal vez no sea un error, y se haya hecho para evitar efectos malintencionados.

  4. A reclamar recompensa si de un bug se trata, ya hay un aleman que gano 5 mil dolares en un día…

    SUERTE!!…

  5. Ramón Rey Vicente

    Yo siento curiosidad por saber que necesidad hay de hacer cosas asi de intrusivas en las webs. ¿no hay maneras mucho mas elegantes de hacer las cosas en vez de molestar al usuario con cincomil ventanitas?

  6. A mi no me hace error firefox 1.0.2 de ubuntu hoary 😀

    (ehemm, como va el desarrollo de sphpblog? :D)

  7. Imaginaba que el problema solo estaría en Windows. Gracias por confirmarlo.

    Llevamos unos meses muy liados con otros asuntos, por lo que SPHPBlog, no ha avanzado casi nada durante este tiempo.

    Esperemos poder recuperar algo en breve, y liberar la 0.4.5 final, con las características actuales del CVS estabilizadas.

Deja un comentario