<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.windowstecnico.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Técnico : Internet Explorer 9, Programacion</title><link>http://www.windowstecnico.com/archive/tags/Internet+Explorer+9/Programacion/default.aspx</link><description>Etiquetas: Internet Explorer 9, Programacion</description><dc:language /><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Internet Explorer 9: Filtrado de ActiveX para desarrolladores</title><link>http://www.windowstecnico.com/archive/2011/05/05/filtrado-de-activex-para-desarrolladores.aspx</link><pubDate>Thu, 05 May 2011 16:57:31 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:4636</guid><dc:creator>anolla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=4636</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2011/05/05/filtrado-de-activex-para-desarrolladores.aspx#comments</comments><description>&lt;p align="justify"&gt;Hace un par de meses comentábamos el “&lt;a href="http://windowstecnico.com/archive/2011/03/07/filtrado-de-activex-en-internet-explorer-9.aspx"&gt;Filtrado de ActiveX en Internet Explorer 9&lt;/a&gt;” y sus ventajas en cuanto a temas de seguridad y usabilidad se refiere.&lt;/p&gt;  &lt;p align="justify"&gt;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 “&lt;a href="http://blogs.msdn.com/b/ie/archive/2011/05/02/activex-filtering-for-developers.aspx"&gt;ActiveX Filtering for Developers&lt;/a&gt;”.&lt;/p&gt;  &lt;p align="justify"&gt;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 &lt;a href="http://windows.microsoft.com/es-ES/internet-explorer/products/ie/home"&gt;Internet Explorer 9&lt;/a&gt; para que no afecte negativamente el filtrado de ActiveX a la experiencia del usuario.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size="3"&gt;API msActiveXFilteringEnabled&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;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.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/20110502_2D00_affd_2D00_image1_2D00_1_5F00_7F19DA98.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="20110502-affd-image1-1" border="0" alt="20110502-affd-image1-1" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/20110502_2D00_affd_2D00_image1_2D00_1_5F00_thumb_5F00_64010B8A.png" width="644" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;Mensaje mostrado por YouTube cuando no se puede mostrar el contenido&lt;/p&gt;  &lt;p align="justify"&gt;Para detectar la posibilidad de que el contenido ActiveX se encuentre deshabilitado se ha integrado en Internet Explorer 9 la API &lt;a href="http://msdn.microsoft.com/en-us/library/gg699481(v=vs.85).aspx"&gt;msActiveXFilteringEnabled&lt;/a&gt; que devolverá verdadero o falso según esté activado o desactivado el filtrado de ActiveX.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font style="font-weight:bold;"&gt;Iconos de filtrado en la página&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/20110502_2D00_affd_2D00_image3_2D00_1_5F00_7C90A8DA.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="20110502-affd-image3-1" border="0" alt="20110502-affd-image3-1" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/20110502_2D00_affd_2D00_image3_2D00_1_5F00_thumb_5F00_69DBAF23.png" width="841" height="149" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;IE muestra el icono de filtrado en el lugar donde se encontraría un control ActiveX bloqueado&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font size="3"&gt;&lt;strong&gt;“Buenas prácticas” para desarrolladores Web&lt;/strong&gt;&lt;/font&gt;&lt;/h4&gt;  &lt;h5&gt;&lt;font style="font-weight:bold;" size="3"&gt;Uso de Objetos Nativos en lugar de ActiveX&lt;/font&gt;&lt;/h5&gt;  &lt;p align="justify"&gt;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. &lt;/p&gt;  &lt;p align="justify"&gt;Esto ocurre cuando se usa el siguiente bloque de código:&lt;/p&gt;  &lt;p&gt;// BAD PATTERN: Don&amp;#39;t do this!&lt;/p&gt;  &lt;p&gt;var xhr = window.ActiveXObject&lt;/p&gt;  &lt;p&gt;? new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;)&lt;/p&gt;  &lt;p&gt;: new XMLHttpRequest();&lt;/p&gt;  &lt;p&gt;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:&lt;/p&gt;  &lt;pre&gt;&lt;font size="2"&gt;// Best Practice: Use Native XHR, if available&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;if (window.XMLHttpRequest) {&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; // If IE7+, Gecko, WebKit: Use native object&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; var xmlHttp = new XMLHttpRequest();&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;else if (window.ActiveXObject) {&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; // ...if not, try the ActiveX control &lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; var xmlHttp = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;else {&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; // No XMLHTTPRequest mechanism is available.&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;p align="justify"&gt;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.&lt;/p&gt;

&lt;h5&gt;&lt;font size="3"&gt;&lt;font style="font-weight:bold;"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h5&gt;

&lt;h5&gt;&lt;font size="3"&gt;&lt;font style="font-weight:bold;"&gt;U&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font style="font-weight:bold;"&gt;so correcto del contenido alternativo&lt;/font&gt;&lt;/font&gt;&lt;/h5&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;lt;object type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;test.swf&amp;quot;&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Best Practice: First detect if ActiveX Filtering is enabled&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (typeof window.external.msActiveXFilteringEnabled != &amp;quot;undefined&amp;quot;&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;amp;&amp;amp; window.external.msActiveXFilteringEnabled() == true) {&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; document.write(&amp;quot;ActiveX Filtering has hidden this content.&amp;quot;);&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else {&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Either the browser isn’t IE, or ActiveX Filtering is not enabled in IE&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; document.write(&amp;quot;Please install the Flash plug-in to view this content.&amp;quot;);&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&amp;lt;/object&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;h5&gt;&lt;font size="3"&gt;&lt;font style="font-weight:bold;"&gt;Comprueba tus páginas web con el filtrado ActiveX activado&lt;/font&gt;&lt;/font&gt;&lt;/h5&gt;

&lt;p align="justify"&gt;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.&lt;/p&gt;

&lt;p align="justify"&gt;Por último, os recomendamos de nuevo que visitéis el &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/05/02/activex-filtering-for-developers.aspx"&gt;enlace original&lt;/a&gt; para leerlo al completo y que nos sigáis a través de &lt;a href="http://feeds2.feedburner.com/WindowsTecnico"&gt;nuestro RSS&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=4636" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://www.windowstecnico.com/archive/tags/Internet+Explorer+9/default.aspx">Internet Explorer 9</category><category domain="http://www.windowstecnico.com/archive/tags/Mejoras+Internet+Explorer+9/default.aspx">Mejoras Internet Explorer 9</category></item></channel></rss>