Hace bien poco, se me encargó un trabajo consistente en el diseño y fabricación, de un cd auto ejecutable. El diseño tenía que ir maquetado en Flash, y debía abrir diferentes ventanas que contenían varios html, por lo que el Flash debería abrir el navegador por defecto y mostrar el html. Todos conocemos las restricciones de seguridad respecto a ejecutar JavaScript en un entorno local. Internet Explorer muestra la “dichosa barrita” amarilla, que avisa del contenido JavaScript, y sobre la cual tenemos que hacer click para que el contenido JavaScript pueda mostrarse. Esto me suponía un problema, ya que las páginas html que debía mostrar en el cd, incluían JavaScript, muy sencillo, pero lo incluían. Al usuario no le puedes ir con la historia de que por seguridad le va a salir esta “dichosa barrita”, y que para activar el contenido debe hacer click en ella. Á‰l no tiene por que saber esto, y tampoco debemos marearlo. El usuario debe encontrar facilmente lo que busca y sin ningún tipo de problema. La solución… la encontré y parece que no era tanto. Como ya he comentado, el problema reside en ejecutar JavaScript en un entorno local (hablo siempre de Windows, concretamente SP2), por lo que debemos hacer creer al navegador, que nuestro trabajo está en el entorno de Internet. ¿Qué cómo hacemos esto?, fácil. La solución la encontré en este buen artículo en Adobe, además en castellano, (es de agradecer), y consiste en incrustar el código Mark of the Web
, después del DOCTYPE, este es el código:
<!-- saved from url=(0014)about:internet -->
Desde Adobe, podemos descargarnos una extensión para Dreamweaver para incrustar este código, aunque no se si merece la pena abrir el Dreamweaver sólo para meter esta línea, lo diga para desarrolladores que no usen este programa, como yo, pero bueno. Un vez instalada la extensión, que viene por defecto, podemos incrustar “Mark of the Web” en nuestro html accediendo a “Comandos > Insertar Mark of the Web“, y listo.
Esto me resolvía el problema para ejecutar JavaScript en un entorno local, pero me encontré con más “retos”. Aun no se por qué, y si alguien tiene noticias de como solucionar esto le agradecería que nos ilustre, pero Firefox, tiene la “fea costumbre”, (para que yo diga esto de Firefox, me tiene que molestar bastante, adoro Firefox), de no reaccionar bien cuando se intenta abrir contenido html desde un Flash incrustado en un cd auto ejecutable. No se si os habréis topado con este problema, pero si tenéis Firefox por defecto en Windows, deberíais, al actuar con un cd auto ejecutable e intentar acceder a un contenido html desde un Flash, Firefox se abre, pero ejecuta mal la acción y abre 2 pestañas, una en blanco y la otra aleatoria. No se a que responde este comportamiento. Así que una de dos, o dejaba de lado a los usuarios de Firefox, entre los cuales me encuentro, y decía en las instrucciones del cd, que es necesario Internet Explorer, o intentaba solucionar el problema. La verdad es que me quedé en un término medio, veréis. Este problema pasa al acceder desde una película Flash a un html, pero no tiene efecto si incrustamos de inicio la película Flash en un navegador y hacemos que el cd auto ejecutable, abra el html donde está la película, pero… ¿cómo hecer que se inicie desde un cd el navegador por defecto y abra el html con la película principal?. Tras dar mil millones de vueltas, encontré el “Santo Grial”. Normalmente, para auto ejecutar el proyector de Flash (.exe), basta con tener un “autorun.inf”, y es este archivo la clave para abrir nuestro navegador por defecto. Este sistema funciona a la perfección en Windows, evidentemente, no se como se comportará en otros sistemas operativos, pero en el trabajo encargado, se me especificaba la plataforma sobre la que se distribuiría el cd, y ésta era Windows. Para abrir el navegador, necesitamos un archivo que tenga incrustado el comando para abrirlo. Este archivo lleva la extensión “.bat” propietario de Microsoft, y básicamente es un archivo para ejecutar acciones, que es precisamente lo que necesitamos. Creamos nuestro archivo “.bat”, por ejemplo “auto.bat”, e incrustamos esta sencilla línea dentro:
start index.html
Esto hará que se abra el navegador por defecto con el html que le hemos pedido, sencillo, ¿verdad?. Previamente, para que “auto.bat” se ejecute, en el “autorun.inf” escribimos esta línea:
[AutoRun]
open=auto.bat
El cd al ser introducido, leerá el “autorun.inf” y por orden de éste, leerá el “auto.bat” que abrirá nuestro html con la película Flash. Así se terminan todos los problemas para abrir html desde un Flash, (en Firefox), ya que cuando el Flash actua dentro de un navegador, lo hace como tal, una página web. Evidentemente, esto no tiene sentido en un usuario que tenga desactivado el “auto arranque” en el cd, pero para estos usuarios tenemos instrucciones precisas y sencillas: “Si no tiene activado el “auto arranque en su unidad de cd, acceda éste y haga doble click en index.html“. No es demasiado lioso, ¿no?.
Pero la historia no termina aquí, “no se vayan todavía, aun hay más”. Aun había que solucionar el tema de las restricciones de seguridad del Flash player en local, y para ello, nada mejor que “SWFObject: Javascript Flash Player detection and embed script”, un sencillo script para embeber Flash con JavaScript y olvidarse del “object” y el “embed”.
Nos descargamos Download SWFObject 1.4″. En nuestra cabecera lamamos al .js con:
<script type="text/javascript" src="swfobject.js"></script>
Y terminamos incrustando nuestro Flash con este código:
<div id="flashcontent">
Contenido alternativo al Flash.
</div>
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); ***
so.write("flashcontent");
</script>
*** En esta línea tenéis las especificaciónes necesárias para adecuar el código a vuestra película. Desde el nombre de esta, al tamaño, pasando por la versión necesaria del plugin de Flash.
Y después de todo lo logré. Pareció una carrera de obstáculos pero lo terminé y todos tan contentos. Espero que lo expuesto, os sirva alguna vez. Un saludo.
Etiquetado como: adobe, auto ejecutable, autoejecutable, blog, cd, explorer, Flash, html, internet, internet explorer, local, plugin, web
ArtÃculos relacionados
