Compartir a través de


Controles de servidor Web ASP.NET y funciones del explorador

Actualización: noviembre 2007

La compatibilidad con las distintas funciones varía según el explorador que se utilice y según la versión del mismo. Los controles de servidor ASP.NET determinarán automáticamente el explorador que ha solicitado la página y presentarán el formato adecuado para dicho explorador. No obstante, algunas funciones del control podrían no representarse en los exploradores más antiguos, por lo que es conveniente examinar el resultado de las páginas en el mayor número posible de exploradores para asegurarse de que éstas se presentan en todos los exploradores en la forma ideada.

Detección automática del tipo de explorador

De manera predeterminada, el marco de trabajo de páginas ASP.NET determina la capacidad del explorador leyendo la información del agente de usuario pasada desde el explorador al servidor durante una solicitud. (Esta información está disponible como propiedad UserAgent del objeto HttpRequest.) La página compara la información del agente de usuario con las entradas de los archivos de configuración y los archivos de definición del explorador.

Nota:

La sección browserCaps de los archivos de configuración (.config) se ha quedado obsoleta en .NET Framework versión 2.0. Por compatibilidad con versiones anteriores, los valores de configuración de esta sección siguen siendo efectivos si se definen en el nivel de aplicación, pero se combinan con la información incluida en los archivos de definición del explorador (.browser) situados en la carpeta %raízDelSistema%\Microsoft.NET\Framework\númeroDeVersión\CONFIG\Browsers del equipo y las carpetas App_Browser existentes en el nivel de aplicación. Para obtener más información, vea Esquema de archivos de definición de explorador (Elemento browsers).

Cuando la página encuentra una coincidencia entre la información del agente de usuario actual y los agentes de usuario enumerados en el archivo, puede leer las funciones correspondientes del explorador; por ejemplo, si admite secuencias de comandos, estilos, marcos, etc. Basándose en estas funciones, los controles de la página representan los controles Web con el formato correspondiente, como XHTML, HTML 3.2, etc. Si ASP.NET está representando HTML, puede determinar si debe representar versiones recientes (compatibles con las hojas de estilos en cascada) o anteriores (no compatibles con las hojas de estilos en cascada) de los elementos HTML. En el caso de los exploradores más antiguos, ASP.NET representa la información de formato mediante elementos (por ejemplo, un elemento font) en lugar de utilizar hojas de estilos.

Anular la detección de tipo de explorador

Si desea controlar de forma explícita la representación de la página en lugar de basarse en la detección automática del explorador, puede establecer la propiedad ClientTarget de la página. Dicha propiedad puede establecerse mediante declaración como atributo de la directiva @ Page para la página o puede establecerse mediante programación.

El valor de la propiedad ClientTarget es un alias del tipo de explorador en el que desea representar la página. Por ejemplo, para forzar que la página se represente en Microsoft Internet Explorer 6.0, puede utilizar el alias uplevel. El alias debe definirse en la sección clientTarget del archivo de configuración. Los valores predeterminados son ie5, ie4, uplevel y downlevel.

Si especifica el alias downlevel, podrá forzar que la página represente elementos compatibles con HTML 3.2, independientemente del explorador que solicite la página. De manera similar, si especifica uplevel, podrá forzar que la página represente atributos de estilo de las hojas de estilos en cascada, incluso para las versiones anteriores de los exploradores.

Puede crear alias adicionales si los define en los archivos Machine.config o Web.config, lo que le permitirá crear definiciones de explorador personalizadas. Para obtener más información, vea Opciones de configuración de ASP.NET.

Controles y características de ASP.NET habilitados para AJAX

Las características de ASP.NET habilitadas para AJAX son compatibles con la mayoría de los exploradores modernos y se ejecutan con la configuración de seguridad predeterminada de estos exploradores. Estos controles y características requieren que el explorador pueda ejecutar scripts de cliente. Los controles UpdatePanel y ScriptManager son ejemplos de controles habilitados para AJAX. Para obtener una lista de exploradores compatibles y de la configuración de seguridad recomendada para los controles y características habilitados para AJAX, vea Configuración de seguridad de exploradores en páginas ASP.NET habilitadas para AJAX.

Nota:

Puede utilizar las propiedades expuestas por el objeto HttpBrowserCapabilities para determinar si un explorador admite ECMAScript (JScript, JavaScript).

Para obtener información general sobre las características AJAX de ASP.NET, vea Agregar funcionalidad AJAX y de cliente.

Secuencias de comandos de cliente

Algunas funcionalidades de los controles de servidor ASP.NET dependen de su capacidad para ejecutar secuencias de comandos de cliente, que se generan automáticamente y se envían como parte de la página si el explorador tiene capacidad para ejecutarlas. Incluso en este caso, algunos usuarios podrían haber desactivado la ejecución de las secuencias de comandos en su explorador, por lo que no podrían sacar el máximo partido de las posibilidades del control. Para obtener más información, vea Script de cliente en páginas web ASP.NET.

Trabajar con versiones anteriores de exploradores

Los exploradores se dividen en dos grupos, denominados normalmente de nivel superior o "uplevel" (versiones más recientes) y de nivel inferior o "downlevel" (versiones anteriores). Estos grupos definen el tipo de compatibilidad original que ofrece el explorador y, generalmente, determinan la presentación y el comportamiento de una página web.

Los exploradores de nivel superior suelen admitir como mínimo lo siguiente:

  • ECMAScript (JScript, JavaScript) versión 1.2

  • HTML versión 4.0

  • Modelo de objetos de documento de Microsoft (MSDOM)

  • Hojas de estilos en cascada (CSS)

Los exploradores y dispositivos de cliente de nivel inferior sólo son compatibles con lo siguiente:

  • HTML versión 3.2

Las propiedades del control de servidor que se muestran en la tabla siguiente se representan de manera diferente para los exploradores de nivel superior y los de nivel inferior.

Propiedad del control de servidor

Comportamiento de representación en los exploradores de nivel superior y de nivel inferior

AccessKey

Esta propiedad no funciona en ningún control en los exploradores de nivel inferior. No es HTML 4.0 y sólo funciona en Internet Explorer 4.0 o versiones posteriores.

BackColor

Esta propiedad funciona en los exploradores de nivel inferior sólo para ciertos controles: Table, Panel, GridView, Calendar y ValidationSummary. También funciona para CheckBoxList, RadioButtonList y DataList si el diseño es un control Table. En general, sólo los controles que se representan como un elemento table pueden procesar un color de fondo en HTML 3.2, mientras que casi todos pueden hacerlo en HTML 4.0. Para los controles que se representan como elementos span, incluidos los controles Label, los controles validadores y los controles de lista en modo Flow, BackColor funciona en Internet Explorer 5 y versiones posteriores, pero no en Internet Explorer 4.0.

BorderColor

Esta propiedad funciona en los exploradores de nivel inferior sólo para los controles basados en tablas, como BackColor. Sin embargo, su resultado es el atributo bordercolor, que no forma parte del estándar HTML 3.2. Aunque algunos exploradores aceptan este atributo, incluidos Internet Explorer 3.0 y posteriores, no ocurre así con todos ellos.

BorderStyle

Esta propiedad no funciona en ningún explorador de nivel inferior. No existe un equivalente para él en HTML 3.2.

BorderWidth

Esta propiedad sólo funciona en los controles que se representan como un elemento table de HTML (Table, Panel, GridView y Calendar) o como un elemento img (Image, AdRotator). BorderWidth sólo funciona en los exploradores de nivel inferior si se ha especificado en píxeles; de lo contrario, se representa siempre como border=1 o border=0. Además, BorderWidth sólo funciona con los controles basados en tablas si GridLines está establecido en un valor distinto de None. Esto se debe a que en HTML 3.2 no existe ningún medio para especificar un borde sin líneas de cuadrícula. Para los controles que se representan como elementos span, incluidos los controles Label, los controles validadores y los controles de lista en modo Flow, BorderWidth funciona en Internet Explorer 5 o versiones posteriores, pero no en Internet Explorer 4.0.

CssClass

Esta propiedad siempre se representa como atributo class, independientemente del explorador. La mayoría de los exploradores de nivel superior reconocen el atributo class.

Enabled

Esta propiedad permite especificar si un control produce sus eventos y funciones. En Internet Explorer 4.0 o versiones posteriores, el efecto de establecer Enabled en false hace que el control parezca estar bloqueado y no disponible para la entrada de datos, como si se utilizara el atributo disabled=true.

Font-Bold, Font-Italic, Font-Strikeout y propiedades similares

Estas propiedades se representan como atributos style para los exploradores de nivel superior (por ejemplo, Font-Weight para el atributo negrita y Font-Style para el atributo cursiva) y como elementos independientes (por ejemplo, b y i) para los exploradores de nivel inferior.

Font-Size

Esta propiedad funciona en los exploradores de nivel inferior para todos los controles solamente si se utilizan tamaños de fuente con nombre (Small, Smaller, etc.). En los exploradores de nivel superior, esta propiedad se representa como atributo style; en los exploradores de nivel inferior se representa como elemento font.

Font-Overline

Esta propiedad no funciona en ningún explorador de nivel inferior.

ForeColor

Esta propiedad funciona en los exploradores de nivel inferior para todos los controles excepto Image, AdRotator, HyperLink y LinkButton. Para los exploradores de nivel inferior, ForeColor se representa mediante elementos font.

Height

Esta propiedad no funciona en los exploradores de nivel inferior para el control Label, los controles validadores o los controles HyperLink o LinkButton. Height tampoco funciona para los controles CheckBoxList, RadioButtonList y DataList si el diseño de dichos controles está establecido en Flow. Sólo funcionan las medidas en píxeles y en porcentajes.

Para los controles basados en tabla, el alto de las tablas internas no se representa para los exploradores de nivel inferior, porque el atributo Height se ha dejado de utilizar en HTML 4.01. En consecuencia, se aprecian ligeras diferencias entre la representación de nivel superior y de nivel inferior. La más obvia se da si se establece BackColor en la propiedad SideBarStyle: en los exploradores de nivel superior, BackColor aparece a lo largo de toda esa columna y, en los exploradores de nivel inferior, aparecerá con la longitud necesaria para albergar los botones de texto.

TabIndex

Esta propiedad no funciona en ningún control en los exploradores de nivel inferior. No es HTML 4.0 y sólo funciona en Internet Explorer 4.0 o versiones posteriores.

ToolTip

Esta propiedad no funciona en ningún explorador de nivel inferior.

Width

Esta propiedad no funciona en los exploradores de nivel inferior para los controles Label, HyperLink, LinkButton o los controles validadores. Width tampoco funciona para los controles CheckBoxList, RadioButtonList y DataList si el diseño está establecido en Flow. Sólo funcionan las medidas en píxeles y en porcentajes.

Vea también

Tareas

Cómo: Detectar tipos de explorador en páginas Web ASP.NET

Tutorial: Desarrollar y utilizar un control de servidor personalizado

Referencia

ClientTarget

Elemento clientTarget (Esquema de configuración de ASP.NET)

HttpBrowserCapabilities

Browser

UserAgent

WebControl

Otros recursos

Programar páginas Web ASP.NET

Desarrollar controles de servidor ASP.NET personalizados