Internet Explorer 9: Filtrado de ActiveX para desarrolladores

Windows Técnico

Sindicación

Proximos HOLs

Loading...

Hace un par de meses comentábamos el “Filtrado de ActiveX en Internet Explorer 9” y sus ventajas en cuanto a temas de seguridad y usabilidad se refiere.

Esta vez nos hacemos eco, y os traemos lo que hemos considerado más importante traducido, de un post publicado en el blog de MSDN correspondiente con Internet Explorer titulado “ActiveX Filtering for Developers”.

Si bien en el post que publicamos hace un par de meses se explicaba cómo activar el filtrado de ActiveX, lo que puede hacer que una página web pierda funcionalidad, en esta ocasión explicamos, desde el *** de vista de un desarrollador, cómo implementar algunas de las mejores introducidas en la release final de Internet Explorer 9 para que no afecte negativamente el filtrado de ActiveX a la experiencia del usuario.

API msActiveXFilteringEnabled

Normalmente, cuando una página web detecta que el contenido ActiveX se encuentra desactivado, automáticamente se muestra un mensaje avisando de que es necesario instalar o actualizar dicho control ActiveX, sin contemplar la posibilidad de que simplemente se haya bloqueado el contenido ActiveX.

20110502-affd-image1-1

Mensaje mostrado por YouTube cuando no se puede mostrar el contenido

Para detectar la posibilidad de que el contenido ActiveX se encuentre deshabilitado se ha integrado en Internet Explorer 9 la API msActiveXFilteringEnabled que devolverá verdadero o falso según esté activado o desactivado el filtrado de ActiveX.

Iconos de filtrado en la página

En algunos casos, las páginas web no muestran un contenido alternativo para las situaciones en las que el contenido ActiveX se encuentra desactivado, lo que hace que se muestre un icono que hace creer al usuario que la referencia al objeto es incorrecta.

Con las nuevas mejoras de Internet Explorer 9, ahora se muestra el mismo icono correspondiente al filtrado de ActiveX, quizá un poco pequeño en algunos casos, para que el usuario pueda discernir rápidamente si el contenido está incorrectamente enlazado o si es el filtro de ActiveX el que está impidiendo que dicho contenido se cargue.

20110502-affd-image3-1

IE muestra el icono de filtrado en el lugar donde se encontraría un control ActiveX bloqueado

“Buenas prácticas” para desarrolladores Web

Uso de Objetos Nativos en lugar de ActiveX

Existen ciertas páginas web que, por utilizar el control ActiveX Microsoft.XMLHTTP para realizar peticiones por AJAX, ven su usabilidad afectada ya que el filtro de contenido ActiveX impedirá que se cargue dicho control y, por tanto, la página web no acabará de renderizar correctamente.

Esto ocurre cuando se usa el siguiente bloque de código:

// BAD PATTERN: Don't do this!

var xhr = window.ActiveXObject

? new ActiveXObject("Microsoft.XMLHTTP")

: new XMLHttpRequest();

Desde Microsoft nos recomiendan que utilicemos el objeto XMLHttpRequest, con nosotros desde Internet Explorer 7, que funcionará correctamente aunque el filtrado de ActiveX se encuentre activado. Por ejemplo, usando un código como el siguiente:

// Best Practice: Use Native XHR, if available
if (window.XMLHttpRequest) {
    // If IE7+, Gecko, WebKit: Use native object
    var xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
    // ...if not, try the ActiveX control 
    var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else {
    // No XMLHTTPRequest mechanism is available.
}

Con ello, se intentará utilizar, siempre que sea posible, un objeto de tipo XMLHttpRequest, recurriéndose a un objeto ActiveX sólo si no existe otra posibilidad.

Uso correcto del contenido alternativo

Como se comentó anteriormente, ahora los desarrolladores disponen de una herramienta para comprobar si el filtrado de ActiveX se encuentra habilitado para, en caso afirmativo, no mostrar un contenido alternativo con la finalidad de que el propio navegador muestre el icono de contenido filtrado. En caso de que se quiera seguir mostrando un contenido alternativo, podemos usar un código como el siguiente:

<object type="application/x-shockwave-flash" data="test.swf">
    <script type="text/javascript">
        // Best Practice: First detect if ActiveX Filtering is enabled
        if (typeof window.external.msActiveXFilteringEnabled != "undefined"
                && window.external.msActiveXFilteringEnabled() == true) {
            document.write("ActiveX Filtering has hidden this content.");
        }
        else {
            // Either the browser isn’t IE, or ActiveX Filtering is not enabled in IE
            document.write("Please install the Flash plug-in to view this content.");
        }
    </script>
</object>
Comprueba tus páginas web con el filtrado ActiveX activado

Algunos de los fallos relacionados con el filtrado ActiveX se pueden identificar perfectamente utilizando el filtro ActiveX para navegar por nuestras propias páginas web y comprobar que la experiencia del usuario será la correcta incluso con el contenido ActiveX desactivado.

Por último, os recomendamos de nuevo que visitéis el enlace original para leerlo al completo y que nos sigáis a través de nuestro RSS.


Enviado may 05 2011, 06:57 por anolla

Añadir un comentario

(requerido)  
(opcional)
(requerido)  
Recordarme
If you can't read this number refresh your screen
Enter the numbers above: