2006-05-01

Haga clic para activar y usar este control - activar contenido flash


Ya hace un tiempo que microsoft en una de sus últimas actualizaciones puso el famoso cartelito en los controles activex.. todo viene a raíz de una demanda judicial de una empresa que tiene patentado la inclusión de objetos ... así que con las etiquetas object, applet, o embed pasan estas cosas.. son 560 millones de dolares los que pide la empresa Eolas por utilizar su patente

Hay varias soluiones circulando por ahí: la solución de Adobe

Básicamente consiste en crear una función que escriba el código < object > y demás.


function ActivarFlash()
{
document.write('< OBJECT ...\n');
document.write('< PARAM NAME="movie" VALUE="---.swf">\n');
document.write('< PARAM NAME="quality" VALUE="high">\n');
document.write('< PARAM NAME="BGCOLOR" VALUE="#404040">\n');
document.write('< embed src="---.swf" ...>\n');
document.write('</embed>\n');

document.write('</object>\n');
}


esto se colocaría en un archivo externo. por ejemplo: activar.js

En la cabecera del archivo pondríamos:


< script src="js/activar.js" type="text/javascript"></script>

y luego < script type="text/javascript">ActivarFlash();</script> donde va colocado el flash.

Cómo os podéis imaginar la cosa se complica cuando tenéis varios flash en la página.

Encontré una solución hace unos días. se trata de utilizar el dom para ir activando uno a uno cada object que se encuentra.

Creas un js. Lo llamas activaractivex.js y pegas este código:


objects = document.getElementsByTagName("object");
for (var i = 0; i < objects.length; i++)
{
objects[i].outerHTML = objects[i].outerHTML;
}

Al final del todo o detrás del último object insertas la siguiente linea:


< script type="text/javascript" src="activaractivex.js"></script>


Esto viene muy bien si tienes plantillas dinámicas con poner estos códigos en la cabecera y en el pie de página te ahorras ir página a página...

4 comentarios:

Raspu dijo...

Hola Carlos:

Hace un tiempo publiqué un Javascript basado justamente en el método que mencionas a través del DOM. Asi como lo presentas trae algunos inconvenientes. Por ejemplo, en IE la propiedad outerHTML en ciertos casos devuelve el código incompleto; también en IE s epresenta un problema con los archivos de video.

Mi trabajo es una versión mejorada de esta metodología. Dale un vistazo y me cuentas tu opinión :D

JS Embedded Content

Carlos dijo...

Gracias por tu comentario. La verdad es que casi no he usado este script. No suelo meter muchos flash sueltos.

Anónimo dijo...

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

Avanzaweb dijo...

Interesante desde el punto de vista del cliente, pero inútil para los que desarrollamos webs. No puedes basar tu diseño en si fulanito ha instalado un parche o no... debes diseñar de forma lo más standard posible y de acuerdo a las estadísticas de uso de los navegadores...