Haga click para activar y usar este control

Si utilizas el Internet Explorer para navegar puede que desde hace cosa de un mes veas el mensaje “Haga click para activar y usar este control”, o su versión en inglés, “Click to activate and use this control”, al pasar el ratón sobre controles ActiveX o Flash embebidos en las páginas web. En mi caso no me había percatado hasta hace unos días, ya que navego usualmente con Firefox, y utilizo el Explorer únicamente para comprobar que lo que desarrollo se ve correctamente.

En realidad este mensaje es una muestra más de hasta donde puede llegar a ser pernicioso el tema de las patentes de software. Resulta que Microsoft llevaba bastante tiempo en juicios con una empresa llamada Eolas, que tiene la única licencia de utilización de una patente registrada por la Universidad de California, referente a la inclusión de plugins dentro de páginas web. Finalmente Microsoft ha sido condenada a pagar la friolera de 560 millones de dolares y se ha visto obligada a crear un parche para el explorer que modifica la carga de los plugin, entre ellos flash, de forma que el usuario no pueda interactuar con ellos hasta hacer click voluntariamente.



Con este parche cuando entras en una página que tiene por ejempo un flash interactivo, por ejemplo un reproductor de sonido, el flash comienza a funcionar y se oiría el sonido, pero si quisiéramos pulsar en el botón pause, previamente deberíamos hacer click en el flash para activar la interacción con el usuario y una vez hecho esto podríamos pulsarlo.

Para evitar este inconveniente como usuario tenemos la opción de desinstalar el parche correspondiente, que tiene el número KB912945. Como desarrolladores también tenemos una alternativa que permite cargar estos plugin activados de forma automática. Ésta se basa en cargar el código html del plugin desde un JavaScript externo.

En el punto del html donde tuviésemos el código para incluir el plugin podríamos poner algo como:

<script src="embed_flash.js"></script>

En un archivo externo con nombre embed_flash.js, pero podría usarse cualquier otro nombre, deberíamos escribir el código JavaScript encargado de generar el código html del plugin, utilizando document.write para ello.

document.write('<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000
codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0 width=450 height=315>')
document.write('<param name=movie value=swf/example.swf />')
document.write('<param name=quality value=high />')
document.write('<param name=wmode value=transparent />')
document.write('<embed src=swf/example.swf quality=high
pluginspage=http://www.macromedia.com/go/getflashplayer
type=application/x-shockwave-flash width=450 height=315></embed>')
document.write('</object>')

En lo que respecta a la navegación con Firefox por ahora no se ve afectada, pero es probable que finalmente tenga que hacer algo similar o llegar a algún tipo de acuerdo que le conceda una licencia de utilización sobre la patente.

Esta solución que indico es sencilla pero únicamente recomendable para webs con un número limitado de recursos externos, para casos más complejos la solución adecuada sería pasar por la utilización de una función JavaScript a la que le pasásemos por parámetro los atributos del plugin. Hay diversos ejemplos disponibles a partir de las webs de los fabricantes como QuickTime, o soluciones más genéricas como la propuesta por Adobe.

En el caso de Adobe se dispone de un archivo Zip descargable que consta de un html de ejemplo, un JavaScript para la carga de contenidos ShockWave y Flash, y otro JavaScript para otros tipos de ActiveX. La forma de cargar un flash activado con esta librería es también muy sencilla.

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="550" height="400" align="middle">
    <param name="allowScriptAccess" value="sameDomain" /> 
    <param name="movie" value="swf/example.swf" /> 
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
<embed src="swf/example.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="foo" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

El código html anterior pasaría a ser una llamada a la función AC_FL_RunContent, en la que se indica como parámetro, de forma consecutiva, cada nombre de atributo con su valor correspondiente.

<script type="text/javascript" >
AC_FL_RunContent('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','550','height','400','align','middle','src','swf/example','quality','high','bgcolor','#ffffff','name','foo','allowscriptaccess','sameDomain','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','swf/example' );
</script>

Para evitar que los navegadores con JavaScript desactivado no puedan cargar el plugin habría que añadir bajo estas líneas un tag <noscript> que contuviese el código html original, de forma que estos usuarios podrían ver el plugin pero tendrían que pulsar en él para activarlo.

Actualización
Nada más publicar este post me llega por otra vía algo más de información. Por un lado Adobe ha publicado un parche para flash que hace que los flash generados se carguen activados de forma automática. Por otra parte he recibido un JavaScript que permite activar todos los plugin de la página de forma automática. Es un “hack” basado en localizar todos los tags con nombre object y “tocar” su html. En cualquier caso no aconsejo esta última opción ya que puede que no sea un funcionamiento estándar y tengamos que volver a modificar las páginas si se hace una actualización del Explorer o comienza a pasar lo mismo en Firefox.

theObjects = document.getElementsByTagName("object");
for (var i = 0; i < theObjects.length; i ) {
theObjects[i].outerHTML = theObjects[i].outerHTML;
}
Twitter Digg Delicious Stumbleupon Technorati Facebook Email

44 Respuestas para “Haga click para activar y usar este control”

  1. Una nota similar fue publicada en NeoTeo, hace casi un mes.
    A veces es necesario quitar mas de un parche para arreglarlo, pegar una ojeada a http://www.neoteo.com/Noticias/tabid/54/ID/655/Title/Haga_click_para_activar_y_usar_este_control/Default.aspx

  2. De todas formas Federico creo que lo de quitar el parche nos puede servir como usuarios finales que queremos navegar cómodamente (aunque también está la opción de usar firefox ;)), pero esto no quita para que como desarrolladores adoptemos otra serie de soluciones que les facilite la navegación a nuestros usuarios

  3. no, claro!
    el link que envie es solo porque hay gente que no sabe como arreglar (momentaneamente) el problema.
    pero la solucion es usar firefox (o Internet Explorer 7) o arreglarlo del lado desarrollador como bien dices.

  4. Bueno, soy un aprendiz en todo esto pero lo cierto es que no conseguia solucionar este problema (activar los flash dentro de un container de una página con XHTML 1.0 Strict) con ningun script ni con la extensión de adobe. Hasta que topé con esta página: http://www.amarasoftware.com/flash-problem.htm
    Y nada, mano de santo. Tan facil como colocar

    debajo del último object y subir el ieupdate.js.
    Y la validación perfecta.
    Un saludo y enhorabuena por la página.

  5. Porque en “Agregar y Quitar Programas” y aún activando “Mostrar Actualizaciones” no tengo ese parche y aún así me sigue saliendo ese cartel de “Haga click … bla bla bla”
    Gracias.

  6. En hora buena, tal y como lo dice Goser, es nada mas bajar el archivo hacer el llamado del script despues del ultimo object y listo !!!

    A disfrutar de los botones flash ! con el IE

  7. He utilizado esta solucion y se arregla lo del click en el flash, pero no carga bien el la página, supongo que por el flash.

  8. excelente post… :D

  9. no tengo los siguientes controles y me sigue apareciendo y no se utilizar el javascript. No tengo:912945, 912812 y otros q se comentan por ahi ayudarme por favor

  10. Acabo de instalar el IE7 relase 1 y no soluciona el problema, al menos para el usuario final,sigue saliendo el molesto mensaje para activar los controles activex..vi una lista de parches que habia para desinstalar en otras paginas pero no tengo instalado ninguno de ellos..seguire con el Firefox

  11. Federico:

    Acabo de publicar una aplicación Javascript para solucionar ese problema. Es una variación evolucionada del “hack” que encontraste en Webintenta (el uso de outerHTML).

    Mencionas en tu post los inconvenientes que podría tener esta metodología, así que he procurado tratar de hacerles frente:

    1. Todo el código necesario se almacena en un archivo JS externo. no necesitas meter nada de código Javascript en el documento HTML, basta con cargar el archivo externo y listo. Y si más adelante hay que hacer alguna modificación, basta con arreglar una sola vez el archivo JS y listo.

    2. El script sólo se ejecuta en Internet Explorer y Ópera (alguna sversiones de Ópera 9 también se vieron afectadas por el tema de las patentes). El script filtra el resto de navegadores para que no se ejecute en ellos, ya que son incompatibles con el uso de “outerHTML”.

    El script (versión 1.1 beta) se encuentra disponible para su descarga en un blog amigo, ya que aún no cuento con sitio web propio.

    Saludos

  12. UPPSSS!!! me equivoqué en el link para la descarga del script. Si pudieses corregir mi comentario anterior, la URL correcta es http://armonia.spiral-static.org/?2006/09/19/144-activar-contenido-embebido-con-javascript

  13. Los felicitooooooo, excelete solución ;-), por fin solucioné el problemita, ojalá originen un código de una sola línea que solucione todo de una vez y no haya que hacer esto flash por flash

  14. Marylene, revisa el link que dejé en mi último comentario (en mi primer comentario puse mal la dirección). Es un javascript que hice, y que cumple justamente con tu pedido.

  15. yo baje el parche de flash lo instale guarde los archivos de nuevo y no soluciona el problema… :(

  16. yo intente de todo… descargue parches, inserte script, de todo… pero la solución es desacerse del explorer sea cual sea ya que es lo mas mula que hay… lo que les recomiendo es que se descarguen el (Mozilla Firefox) y lo instalen en su tarro y con ese no tendran problemas de vizualización… esto sirve para el usuario que visitas sitios web, y es demasiado tedioso pinchar sobre el flash…

    por parte del diseñador estamos jodidos ya que los usuarios normales solo usan el IExplorer y siempre tendran ese problema, a menos que se cambie de explorador, por que las otras soluciones son mulas….

    espero les sirva de algo mi forma de pensar…

  17. Hola a todos, soy nuevo en esto de los foros pero me fueron hasta ahora de gran utilidad sobre todo el de este sitio.

    Por eso quiero hacer un pequeño aporte sobre este tema. PARA DESARROLLADORES DE SITIOS WEB.

    Descarguen la actualizacion del Dreamweaver 8.0.2 y problema solucionado. todas las páginas con objetos Flash elaboradas con esta actualización ya instalada podran funcionar sin el molesto: “haga Clic para activar y usar este control”.
    Para las paginas elaboradas anteriormente hay que abrirlas desde el sitio remoto con el Dreamweaver y automaticamente detecta que le falta la corrección del codigo para solucionar este problema y pide confirmación para corregirlo.
    A continuación la actualización mencionada:

    Para Windows y en Español:
    http://www.adobe.com/support/dreamweaver/downloads_updaters.html#dw8

    Para Mac u otro idioma :

    Macromedia – Dreamweaver Support Center : Updaters

    Espero que les sirva el aporte. Saludos!

  18. Es importante destacar que no se olviden de subir el archivo AC_RunActiveContent.js que genera el dreamweaver en una carpeta sripts, si no suben este archivo no se verá el flash en ningún navegador.

  19. hola, llevo todo el dia viendo un mensaje que me dice que tengo que instalar el adobe flash player y me esta volviendo loca. porue ya lo tengo instalao y claro, con mozilla no tengo problema pero ie no me funciona y por tanto tampoco el messenger, bueno no todo, lo que no funcionan son las animaciones, guiños, imagenes dinamicas y demas. estoy agobiada, no se como solucionarlo porque no entiendo mucho de esto

  20. hola a todos esot iniciando con este mundo fascinante y muy complicado del desarollo de webs. pero mi pregunta en donde coloco el script

    y en que parte subo los archivos del java?

    espero algun comentarios.. mil gracias :D

  21. excelente…. ya encontre la solucion pero la realiza dos veces.

    pero la encontrare… saludos.

  22. hola porfavor ayuda…
    Ya intente todo y me sigue apareciendo el mensaje de clic para usar y activar este control, donde coloco el archivo .js?
    ya que lo coloque donde tengo el index y nada, y coloque la linea
    en el index, pero nada aun

    si alguien puede iluminarme le estare eternamente agradecida.

  23. Hola, no tengo mucha idea de como hacer lo de java para que no salga en mi pagina lo de activar el control, si fueras tan amable de mirarme el codigo fuente de mi pagina y decirme donde y qué código debo colocar. Te estaré eternamente agradecido y hasta te pongo en enlaces de interes ejjejeje. Muchas gracias de antemano porke esta es launica pagina que habla en serio del problema, porque eso de kitar el parche no me gusta, yo lo ke kiero es que todos puedan disfrutar de la pagina sin tener ke activar el control. GRacias de nuevo esperare impaciente tu respuesta.

  24. que onda
    saben porfin microsoft resolvio este problema liberando un parche que no requiere validar tu windows para arreglar esto de activex mas informacion en http://support.microsoft.com/?kbid=917425
    :d bueno espero y les sirva a mi si me funciono

  25. Docker, esa revisión que indicas creo que no tiene que ver con este caso concreto. Creo que se refiere a un problema relacionado con la opción de mostrar capas que puedan tapar o ponerse por encima de controles ActiveX, por lo tanto, nada que ver con esto ;)

  26. Desde hace un tiempo implemente el

    y cargue el ieupdate.js

    Se soluciono lo de activar el control pero el problema que tengo desde entonces es que las pagina con ese script no terminan nunca de cargar aparece “(Queda 1 elemento) Esperando a http://….”

    Existe una solucion para esto?

    Agradecida

  27. Hola, gracias por sus comentarios, me han servido mucho. Pero la forma mas fácil de solucionarlo es como lo dijo Goser, bajen el script de http://www.amarasoftware.com/flash-problem.htm, es un script magnífico, solo tienes que bajarlo y colocarlo en tu web, llamarlo al final de todos tus tags object y ¡Listo!

  28. Gracias Goser!!!!

    me fui hasta el link http://www.amarasoftware.com/flash-problem.htm y en sólo dos pasos se solucionó el problema.
    Funciona!

    Muy bueno el foro

  29. como puedo quitar la jodida ventana de “cargar controles activex” hice mi página con Scripts y nomás no puedo DIGANMEEEEEEEEEEEEE

  30. Hola estimados
    logre sacar el tedioso marquito de flash, subiendo ieupdate.js este java y el siguiente codigo : este codigo va despues de cada flash de tu sitio web.
    el drama es que al subir esto la pagina queda cargando 1 o mas items y se queda asi siempre. como soluciono esto ?

    Gracias

  31. Julian Villalobos Esparza 07. jun, 2007 en 6:51 pm

    Saludos..

    Solo para felicitarlos por la buena informacion.. ya no tengo que darle click a las animaciones y menus de flash que hago..

    muy agradecido desde Lagos de Moreno, Jalisco.. Mexico

  32. Basándose en el método propuesto aquí:
    http://erwin.ried.cl/?modo=visor&elemento=230

    Encontré un parche que hace que Internet Explorer nunca más pida hacer click:
    http://d01.megashares.com/?d01=2bdb329

  33. Hola, ami en lo personal me funciona el Scrip, pero la barra del explorador nunca termina de cargar los elementos, siempre me dice que faltan 2 items por descargar, y asi es localmente como en un servidor normal, utilizo IE7 para pruba, IE6, y me da lo mismo, alguien sabe como solucionar este problemita, Gracias saludos d emi parte

  34. Alguien sabe como quitar el menu de las pelicuas de flash, que no salga nada, ni aun acerca de flash, nada nada, yo utilizo menu false en los parametros, deshabilita algunas, pero siempre queda acerca de macromedia flash, Saludos

  35. Hola alguien puede ayudarme con el scrip, todo sale bien como dice el amigo Levi, pero no termina de cargarse la pagina en su totalidad

  36. Que pasa con la w3c?
    no es válida!!

  37. hola he leido casi el 90% de los comentarios oluciones todo,se menciona de cargar el script que si no lo haces no funciona? que sucede con el geocities?? ahi se cargan los archivos de uno en uno?? si cargo el archivo .js desde la carpeta script no pasa nada no se ve la animacion flash?.. alguien sabe como solucionar este problema????…………………

  38. por que donde doy click no se habre nada que puedo hacer en mi pc pues no se baja ni java ni adobe y no puedo ver nada ni escuchar nada me podrias ayudar ?????

  39. Hola!, es mi primera consulta en este foro y espero que podaís ayudarme.

    No se como puedo activar el Java Script, se que lo tengo instalado y actualizado pero cuando quiero ver alguna presentación, me dice que no lo tengo activado o una versión antigua de Adobe Flash Player, pero esto último tampoco es verdad ya que lo tengo actualizado con la ultima versión.
    He ido a herramientas, a opciones de internet y e intentado en el apartado Seguridad, marcar nivel predeterminado, pero no he tenido resultado alguno. También y dentro de las mismas opciones he intentado personalizar y he comprobado que todo estaba correcto, pero nada resultado infructuoso. No se que más puedo hacer, ya que hasta hace poco tiempo no había tenido ningún problema.

    Por favor os estaría muy agradecido si pudierais ayudarme, pues como habreís podido deducir soy bastante torpe y novato, y necesito las explicaciones paso a paso.

  40. no yudda en nada

    no dice en donde hay k colocar esa etiketa.

    por k no explican con un video para aprender mas rapido.

  41. Esteban, que no ayuda en nada será a ti, porque al resto parece que sí ;) Igual lo que tienes que hacer es prestar más atención y probar a resolverlo por ti mismo…

  42. Hola amigos, tengo el siguiente problema. tengo un flash en el encabezado que hace la llamada a un archivo externo en javascript cuyo codigo es el siguiente “document.write(” “);” con esto he logrado que se valide elflash; pero nada mas me funciona y me lo muestra bien en Mozilla Firefox. y en internet explorer solo sale un cuadro en blanco. Podes ver como esta la pagina en http://www.insl.edu.sv . Necesito su ayuda y muchas gracias.

  43. yo implemente esta solucion y anda barbaro en ie pero no anda en mozilla!
    Directamente no levanta el flash!

Trackbacks/Pingbacks

  1. Recursoft » Haga click para activar y usar este control - 25. sep, 2006

    [...] Pues Adobe, publico oficialmente un modulo programado en javaScript. para deshacernos de ese molestoso mensaje que sale en Internet Explorer de Microsoft. que nos manda el mensaje de “Haga click para activar y usar este control” o “Click to activate and use this control” . La verdad que esto hacia ver muy mal a los blog programados. [...]

Dejar un Comentario