Activado automático de control activex en Internet Explorer (IE ACA)

Hace un tiempo la gente de Microsoft decidio que para usar un control flash (hablando con propiedad serían los elementos APPLET, EMBED y OBJECT) en internet explorer primero habia que activarlo, se mostraba un mensaje “Click to activate and use this control” (en inglés) y “Haga click para activar y usar este control” (en castellano) tal como lo muestran estas imagenes:

Click to activate and use this control Haga click para activar y usar este control

Según Microsoft sacarian en Abril del 2008 un parche para no hacer este click. Por ahora nos dan un preview (para ir probando las aplicaciones), si descargas e instalas este parche de microsoft ya no será necesario que actives un control flash antes de usarlo.

Descargar el parche:

http://support.microsoft.com/kb/945007

Información acerca del componente ActiveX:

http://msdn2.microsoft.com/en-us/bb969055.aspx

Aunque algunos de nosotros ya sabiamos que usando javascript podiamos esquivar esta previa activación del control, de la siguientes formas:

Usando document.write:


var obHTML = '<object ...>' +
  '<param name="URL" value="example.mpeg">'+
  '<embed src="example.mpeg" ...>'+
  '<\/object>';
//the next line needs to be in an external file
document.write(obHTML);

Usando innerHTML


var obHTML = '<object ...>' +
  '<param name="URL" value="example.mpeg">'+
  '<embed src="example.mpeg" ...>'+
  '<\/object>';
//the next line needs to be in an external file
document.getElementById('containobj').innerHTML = obHTML;

Usando DOM


var newOb = document.createElement('object');
//the next line needs to be in an external file
document.getElementById('containobj').appendChild(newOb);
newOb.width = '100';
newOb.height = '100';
newOb.URL = 'example.mpeg';

También habia código de software propietario como Dreamweaver (antes Macromedia ahora Adobe). Insertaba una JS en tú página web:


<script src="AC_RunActiveContent.js" language="javascript"></script>

y luego insertaba las siguientes lineas donde querias insertar el objeto flash:


<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("This page requires AC_RunActiveContent.js");
} else {
AC_FL_RunContent(
'codebase', 'https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '200',
'height', '200',
'src', 'yourswffile',
'quality', 'high',
'pluginspage', 'https://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'false',
'scale', 'noscale',
'wmode', 'window',
'devicefont', 'false',
'id', 'flash-animations',
'bgcolor', '#eeeeee',
'name', 'yourswffile',
'menu', 'false',
'allowScriptAccess','sameDomain',
'movie', 'yourswffile',
'salign', ''
);
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="200" height="200" id="flash-animations" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="flash-animations.swf" />
<param name="loop" value="false" />
<param name="menu" value="false" />
<param name="quality" value="high" />
<param name="bgcolor" value="#eeeeee" />
<embed src="flash-animations.swf" loop="false" menu="false" quality="high" bgcolor="#eeeeee" width="200" height="200" name="flash-animations" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="https://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>

Descargar ejemplo y archivos javascript de adobe (macromedia):
http://download.macromedia.com/pub/developer/activecontent_samples.zip

Información de Adobe:
http://www.adobe.com/devnet/activecontent/articles/devletter.html

Información de microsoft:
http://msdn2.microsoft.com/en-us/library/ms537508.aspx

Post de IEBlog:
http://blogs.msdn.com/ie/archive/2007/11/08/
ie-automatic-component-activation-changes-to-ie-activex-update.aspx
click_to_activate_calendar

Información de adobe:
http://kb.adobe.com/selfservice/viewContent.do?externalId=7c29e252&sliceId=1

Links de referencia:
http://www.amarasoftware.com/flash-problem.htm
http://www.howtocreate.co.uk/noclicktoactivate.html

Tal parece que algunos han tenido problemas con el javascript del dreamweaver y usan como alternativa el:

SWFObject: Javascript Flash Player detection and embed script

Incluir la cabecera del JS


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

Poner un div en caso no se pueda visualizar contenido en flash


<div id="flashcontent">
  This text is replaced by the Flash movie.
</div>

y luego utilizar la función javascript para mostrar flash:


<script type="text/javascript">
   var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");
   so.write("flashcontent");
</script>

Descargar:
http://blog.deconcept.com/swfobject/swfobject.zip

Página oficial:
http://blog.deconcept.com/swfobject/

1 Comentario hasta ahora

  1. [...] Ya se sabía que estaría disponible desde abril, y solo estabamos esperando para instalarlo y/o distribuirlo. [...]

Leave a reply