Accesibilidad

Artículo de actualización de contenido activo

 

Preparación de sitios web con contenido activo para cambios del explorador anunciados


Adobe

 

Creado:
31 Mar 2006
Utilizar Nivel:
Todos

Muchos usuarios habrán leído información sobre los cambios anunciados en Microsoft Internet Explorer. Puede que tenga algunas preguntas sobre qué va a ocurrir en los sitios web que utilicen contenido integrado ("activo") y otras aplicaciones. El contenido activo puede incluir archivos de Macromedia Flash, Shockwave o Adobe Acrobat. Probablemente, estará pensando qué hacer para prepararse.

¿Cómo influirán los cambios del explorador en mi sitio web?

¿Cuáles serán en realidad los efectos de los cambios del explorador? ¿Cuándo se realizarán estos cambios? ¿Podrán los usuarios ver aún el contenido activo mañana o la próxima semana?

Los usuarios podrán ver el contenido activo y las aplicaciones en sus formularios actuales hasta que actualicen sus exploradores de Internet Explorer en Windows. La actualización del explorador se lanzó en febrero de 2006 como algo opcional. Una vez que los usuarios actualicen el explorador, deben hacer clic en el contenido integrado o "activo" antes de interactuar con él. Consulte los recursos* en la Microsoft Developer Network (MSDN), donde puede obtener más información.

Algunos sitios web no se verán afectados por este cambio. El explorador actualizado solicita a los usuarios que hagan clic antes de mostrar el contenido activo codificado mediante las etiquetas <object> , <embed> , o <applet> que se encuentran incorporadas en un archivo HTML. Sin embargo, tanto las páginas HTML que utilizan etiquetas generadas mediante archivos de comando externos (por ejemplo, JavaScript) como las que utilizan comandos complejos de detección de Flash, deberían continuar funcionando con normalidad sin cambio alguno.

A muchos usuarios les gustaría retocar sus sitios web para realizar los cambios obligatorios en el explorador. La buena noticia es que ya se puede aplicar uno de los múltiples diseños ya existentes a su sitio web.

Requisitos

Archivos de muestra

descargarDescargar los archivos de JavaScript (archivo comprimido de 4K)

Nota: Este archivo de muestra contiene tres archivos:

Puesta en macha inmediata: revisión para visualizar el contenido activo

Éstos son algunos ejemplos del código del "antes" y "después", proporcionados por el equipo de desarrollo de Adobe, que puede utilizar para actualizar aquellas páginas HTML que cuenten con contenido activo en su página.

Código que necesita sustituir

A continuación, se muestra un ejemplo de código (una etiqueta de <object> sencilla) que no funcionará en el explorador actualizado de la misma manera que lo hacía con anterioridad:

<object classid="clsid:D27CDB6E..." ...>
    <param name="movie" value="foo.swf">
</object>

Si sustituye esta etiqueta por un comando que, tal y como se describe en los dos siguientes métodos, activa código exterior a la página HTML, debería seguir funcionando en la versión actualizada de Internet Explorer (IE). Consulte los recursos en la Microsoft Developer Network (MSDN) en msdn.microsoft.com/ieupdate/* donde puede obtener más información.

Se ha evaluado esta revisión de JavaScript; funciona para exploradores actuales y comunes. Compruebe nuestra matriz de evaluación para ver si la solución es adecuada para los visitantes de su página web.

Solución externa número uno de JavaScript: Para incidencias únicas (o escasas) de contenido integrado

Si su sitio web sólo tiene una o escasas piezas de contenido integrado, puede que desee utilizar la siguiente solución sencilla. Para implementarla, necesita crear una archivo externo único de JavaScript (JS) para cada página de su sitio web que posea contenido integrado.

Nota: Si tiene más de una pieza de contenido integrado en un página, cree funciones únicas (véase paso 1) en el archivo externo de JS para las etiquetas de document.write de cada una de las piezas de contenido. Además, tenga en cuenta que esta solución no se incluye en los archivos de muestra; para crear el nuevo código a partir del existente en su página HTML actual, sólo ha de seguir las siguientes instrucciones.

A continuación, se muestran los pasos a seguir:

  1. Cree y sitúe el archivo externo de JS en su sitio web. En este ejemplo, el archivo se denomina foo.js . Este comando requiere aplicar la instrucción document.write a la totalidad de las etiquetas integradas/objeto que se encontraban con anterioridad en su archivo HTML:

    function RunFoo()
    {
        document.write('<object classid="clsid:D27CDB6E..." ...>\n');
        document.write('<param name="movie" value="foo.swf" />\n');
        document.write('</object>\n');
    }
    
  2. Añada una orden de inclusión de JavaScript que señale el archivo JavaScript desde el paso 1 hasta la sección <head> de la página web donde está integrado el contenido.

    <script src="[path]/foo.js" type="text/javascript"></script>
    
    
  3. Sustituya cada etiqueta <object> , <embed> , o <applet> por una activación de los archivos externos apropiados tal y como se expone a continuación:

    <script type="text/javascript">RunFoo();</script>
    
    

Solución número dos de JavaScript externo: para incidencias múltiples del contenido integrado

Si su sitio web tiene mucho contenido activo integrado o si está integrado de múltiples maneras, esta solución le ofrece grandes ventajas. Puede usar un único archivo JS externo para todo el contenido de Flash y Shockwave integrado, en lugar de crear uno para cada archivo afectado (como en la solución número uno). El archivo JS incluye las funciones que integran los contenidos activos basados en parámetros que recibe de la página principal.

Para implementar esta solución, tiene que seguir los tres pasos siguientes:

  1. Copie el archivo JS externo que contiene las funciones de solución a una ubicación compartida de su sitio web. Nómbrelo AC_RunActiveContent.js en este ejemplo, o de cualquier forma que elija.

    descargarDescargar los archivos de JavaScript (archivo comprimido de 4K)

    El código en el archivo AC_RunActiveContent.js utiliza argumentos que usted pasa (consulte el paso 3) al crear una cadena completa de etiquetas que escribe en su documento.

  2. Añada una orden de inclusión de JavaScript que señale los archivos JavaScript compartidos desde el paso 1 hasta la sección <head> de cada página web de su sitio que incluye una etiqueta objeto/integrada.

    <script src="[path]/AC_RunActiveContent.js" type="text/javascript"></script>
  3. Sustituya cada instancia de etiquetas de <object> y <embed> en sus páginas por las activaciones de función apropiadas. A continuación, se muestran dos activaciones de función para que elija: una para contenido Flash y otra para contenido Shockwave.

    AC_FL_RunContent(
        "att1Name","att1Value", 
        "att2Name","att2Value", 
        ... 
        "attnName","attnValue" 
    );
    AC_SW_RunContent( 
        "att1Name","att1Value", 
        "att2Name","att2Value", 
        ... 
        "attnName","attnValue" 
    );
    

    Nota: Estas funciones necesitan que JavaScript esté habilitado para funcionar. Para permitir que los usuarios que tengan en sus exploradores el JavaScript deshabilitado vean el contenido activo, lleve a cabo cada función con las etiquetas tradicionales <object>/<embed> en <noscript>, tal y como se describe en la sección ¿Qué ocurre con los usuarios que tienen JavaScript desactivado?

    Mientras sustituye las etiquetas objeto e integradas con estas nuevas activaciones de funciones, edite los pares de argumentos (representados por "att1Name", "att1Value") para incluir atributos apropiados y sus valores desde las etiquetas originales, como movie , id , bgcolor , etc. Puede encontrar un ejemplo de este código para un archivo Flash específico en el archivo de muestra SampleActiveContent.html, incluido en la descarga del archivo de muestra.

    Al editar la activación de función para enviar el atributo de película, no incluya la extensión de archivo con el nombre de la película. Envíe el nombre de la película así:

    "movie", "foo".

    El código de JavaScript externo añadirá la extensión adecuada.

    Si envía parámetros a su archivo Flash , puede tener un atributo de película original similar a:

    foo.swf?username=Bob&color=red

    Para enviar correctamente los atributos de nombre y color, inclúyalos como argumentos en la función de la siguiente manera (recuerde omitir la extensión del archivo):

    "foo?username=Bob&color=red"

    Asegúrese de enumerar los argumentos en pares nombre/valor; necesita enviar un número par de elementos al código AC_RunActiveContent.js. De lo contrario, no funcionará. JavaScript también inserta automáticamente otros ajustes necesarios , por ejemplo classid y mimeType, como resultado de una activación de función específica del reproductor. Si necesita actualizar el valor de uno de estos ajustes necesarios, edite dichos valores en las funciones AC_FL_RunContent() o AC_SW_RunContent(), que puede encontrar en el código AC_RunActiveContent.js. En su página HTML, envíe sólo los argumentos de los parámetros opcionales.

    A continuación, se muestra un ejemplo de cómo sustituir una etiqueta incorporada y objeto en línea estándar ique reproduce un archivo Flash mediante este método. Si tuviera que remplazar el siguiente código:

    <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="foo.swf" /> 
        <param name="quality" value="high" />
        <param name="bgcolor" value="#ffffff" />
    <embed src="foo.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>

    Insertaría la siguiente activación de función en su lugar:

    <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','foo','quality','high','bgcolor','#ffffff','name','foo','allowscriptaccess','sameDomain','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','foo' );
    </script> 
    
    

¿Qué ocurre con los usuarios que tienen JavaScript desactivado?

Los dos métodos anteriores se basan en JavaScript. Un porcentaje pequeño de los visitantes de su sitio web podrían tener deshabilitado JavaScript en sus exploradores. Las técnicas propuestas con anterioridad no funcionarán para estos pocos usuarios y no verán el contenido integrado. Hay que tener en cuenta que muchos o la mayoría de usuarios de IE que hayan deshabilitado JavaScript podrían haber hecho lo mismo con el soporte ActiveX. Sin embargo, los usuarios que hayan deshabilitado ActiveX no han podido visualizar el contenido Flash y Shockwave en sus exploradores. La migración a técnicas de JavaScript para contenido integrado no altera o influye en la experiencia de los usuarios. Sólo necesita preocuparse por aquellos usuarios que tengan deshabilitado JavaScript pero no ActiveX.

En el caso de estos últimos, inserte las etiquetas <object> y <embed> directamente en el archivo HTML, pero incorpórelas a una etiqueta <noscript>. <noscript> es una etiqueta estándar que proporciona códigos alternativos a prueba de errores para usuarios que han desactivado JavaScript. A continuación, se muestra un ejemplo de una película Flash integrada estándar anidada en una etiqueta <noscript>:

<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="foo" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="foo.swf" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
<embed src="foo.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>
</noscript>

Los usuarios que tengan deshabilitado JavaScript necesitarán hacer clic para activar el contenido activo en el explorador actualizado al visitar una página con un código similar al anterior. Después, pueden interactuar con el contenido como lo hacían con anterioridad.

Solución para otro tipo de contenido activo

En los archivos de muestra adjuntos a este artículo, también si incluye un archivo JavaScript denominado AC_ActiveX.js. No necesita este comando para visualizar el contenido Flash o Shockwave si utiliza los métodos descritos con anterioridad. Sin embargo, los desarrolladores que están trabajando con otro tipo de contenido activo en páginas web pueden utilizar este comando para visualizar otro tipo de contenidos que no requiere que el usuario haga clic para activarlo. Considérelo una clase de comando genérico que funciona con una amplia gama de contenidos. Puede utilizar este comando en gran parte de la misma forma que usaría AC_RunActiveContent.js, tal y como se describe en los pasos expuestos anteriormente.

Para implementar este comando, incluya primero los archivos externos en la sección <head> de la página HTML mediante el siguiente código:

<script src="[path]/AC_ActiveX.js" type="text/javascript"></script> 
<script src="[path]/AC_RunActiveContent.js" type="text/javascript"></script>

Después, igual que en el método Flash/Shockwave, sustituya el código <object> y <embed> mediante la modificación de los pares de valores y atributos para ajustarse al contenido:

<script type="text/javascript">
     AC_AX_RunContent( 'classid','clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFB','width','150','height','100','src','fakefile.foo' );
</script>

Nota: Puede encontrar también código a modo de ejemplo similar a éste en el archivo HTML de muestra SampleActiveContent.html, que se incluye en la descarga de los archivos de muestra.

Acuda a: Centro de desarrolladores de contenido activo

Adobe confía en que pueda implementar correctamente las revisiones en su sitio al utilizar algunos de estos métodos. Sin embargo, como medida de seguridad, se continuará proporcionando toda la información a medida que esté disponible. Acuda a este sitio para obtener cualquier actualización y nuevos métodos para visualizar el contenido activo.

Acerca del autor

Contenido autorizado por Adobe Systems, Inc.