Controles de Servidor Web do ASP.NET e Recursos do Navegador
Navegadores diferentes, e diferentes versões do mesmo navegador, suportam recursos diferentes.Controles de servidor ASP.NET serão determinarão automaticamente o navegador que solicitou a página e processarão a marcação apropriada para esse navegador.No entanto, alguns recursos de controle não podem ser processados em navegadores mais antigos, portanto, é uma boa ideia observar a saída de suas páginas no máximo de tipos de navegador possível para garantir que as páginas serão apresentadas para todos os navegadores da maneira como deseja que elas sejam.
Detecção automática de Tipos de Navegador
Por padrão, a estrutura sw página ASP.NET determina os recursos do navegador lendo as informações do agente de usuário passadas a partir do navegador para o servidor durante uma solicitação.(Essa informação está disponível como a propriedade UserAgent do objeto HttpRequest.) A página coincide com as informações do agente de usuário contra entradas de agente em arquivos de configuração e arquivos de definição do navegador.
Observação: |
---|
The browserCaps seção dos arquivos de configuração (config) foi substituída no .NET estrutura versão 2.0.Para compatibilidade com versões anteriores, as configurações contidas nesta seção ainda têm efeito se elas são definidas no nível do aplicativo, mas são mescladas com as informações contidas nos arquivos de definição do navegador (.Browser) localizadas na pasta %SystemRoot%\Microsoft.NET\Framework\versionNumber\ CONFIG\Browsers no nível da máquina e quaisquer pastas existentes no nível do aplicativo App_Browser.Para obter mais informações, consulte Navegador Definition Arquivo Esquema (navegadores elemento). |
Quando a página encontra uma correspondência entre as informações agente de usuário atual e agentes de usuário listadas no arquivo, ela pode ler os recursos do navegador correspondente, como se o navegador oferecesse suporte para scripts, estilos, quadros e assim por diante.Com base nesses recursos, os controles na página processam controles da Web usando marcação apropriada, como XHTML, 3.2 HTML e assim por diante.Se o ASP.NET está processando HTML, ele pode determinar se deve processar versões recentes (compatível com folhas de estilo em cascata - CSS) ou anteriores (não compatíveis com CSS) dos elementos HTML .Para navegadores mais antigos, o ASP.NET processa informações de formatação usando elementos (por exemplo, um elemento font) ao invés de estilos CSS.
Substituindo Detecção do Tipo do Navegador
Se você quiser controlar explicitamente como a página é processada em vez de depender de detecção automática do navegador, você pode definir a propriedade da página ClientTarget.Você pode conjunto a propriedade declarativamente sistema autônomo um atributo do @ Page diretiva para essa página, ou você pode defini-la programaticamente.
O valor da propriedade ClientTarget é um alias para o tipo de navegador que você deseja processar a página.Por exemplo, para forçar a página a ser processada para Microsoft Internet Explorer 6.0, você pode usar o alias uplevel.O alias deve ser definido na clientTarget seção do arquivo de configuração.Os padrões predefinidos são ie5, ie4, uplevel e downlevel.
Especificando o alias downlevel, você pode forçar a página a processar HTML elementos 3.2 compatíveis, independentemente de qual navegador solicitou a página.Da mesma forma, especificando uplevel, você pode forçar a página a processar atributos de estilo CDD mesmo para versões mais antigas do navegador.
Você pode criar alias adicionais definindo-os no arquivo Machine.config ou Web.config, que permite que você crie definições personalizadas de navegador.Para obter mais informações, consulte Definições de configuração ASP.NET.
Controles e Recursos ASP.NET AJAX-ativado
Recursos do ASP.NET com AJAX habilitado são compatíveis com navegadores mais modernos e executam com as configurações de segurança padrão para esses navegadores.Esses controles e recursos exigem que o navegador possa executar script de cliente.Os controles UpdatePanel e ScriptManager são exemplos de controles AJAX ativado.Para obter uma lista de navegadores compatíveis e configurações de segurança recomendadas para controles e recursos AJAX habilitado, consulte Configurações de Segurança do Navegador para Páginas ASP.NET com AJAX Ativado.
Observação: |
---|
Você pode usar as propriedades expostas pelo objeto HttpBrowserCapabilities para determinar se um navegador suporta ECMAScript (JScript, o JavaScript). |
Para obter uma visão geral dos recursos de AJAX no ASP.NET, consulte Adicionar recursos de cliente e AJAX.
Script de Cliente
Algumas funcionalidades de controles de servidor ASP.NET dependem da execução de script de cliente.O script de cliente é automaticamente gerado e enviado como parte da página, se o navegador for capaz de executar script.Mesmo assim, alguns usuários talvez tenham desativado a execução do script em seus navegadores e, portanto, não será possível usar totalmente os recursos do controle.Para obter mais informações, consulte Script de Cliente em Páginas da Web ASP.NET.
Trabalhando com Versões Anteriores dos Navegadores
Navegadores são divididos em dois grupos, que são às vezes chamados Navegadores "uplevel" (versões mais recentes) e Navegadores "de nível inferior" (versões anteriores).Esses grupos definem o tipo de suporte nativo que um navegador oferece, e elas geralmente determinam a apresentação e comportamento de um página da Web.
Navegadores que são considerados "uplevel" geralmente oferecem suporte para pelo menos o seguinte:
ECMAScript (JScript, o JavaScript) versão 1.2.
HTML versão 4.0.
O modelo de objeto de documento Microsoft (MSDOM).
CSS - Cascading Style Sheets (Folhas de estilos em cascata)
Navegadores "de nível inferior" e dispositivos do cliente oferecem somente suporte a seguir:
- MTML versão 3.2.
As propriedades do controle de servidor listadas na tabela a seguir processam de maneira diferente em navegadores uplevel e de nível inferior.
Propriedade de controle do servidor |
Comportamento de processamento em navegadores uplevel e de nível inferior |
---|---|
AccessKey |
Esta propriedade não funciona em quaisquer navegadores de nível inferior para os controles.Ele é não MTML 4.0 e funciona apenas no Internet Explorer 4.0 ou posterior. |
BackColor |
Essa propriedade funciona em navegadores de nível inferior para apenas determinados controles: Table, Panel, GridView, Calendar, e ValidationSummary. Ele também funciona para CheckBoxList, RadioButtonList e DataList se o layout estiver em um controle Table.Em geral, somente os controles que processam como um elemento table podem dar saída de plano de fundo em cor no HTML 3.2, enquanto quase nada pode no MTML 4.0.Para controles que processem elementos span, incluindo controles Label, controles de validação e controles de lista no modo Flow, BackColor funcionam no Internet Explorer 5 e posterior, mas não no Internet Explorer 4.0. |
BorderColor |
Esta propriedade funciona em navegadores de nível inferior somente para os mesmos controles como BackColor.No entanto, ele sai como o atributo bordercolor, que não é parte do HTML 3.2 padrão.Alguns navegadores oferecem suporte para esse atributo, incluindo Internet Explorer 3.0 e posterior, mas nem todos os navegadores o fazem. |
BorderStyle |
Esta propriedade não funciona em quaisquer navegadores de nível inferior.Não há nenhum equivalente em HTML 3.2. |
BorderWidth |
Essa propriedade funciona somente em controles que processam sistema autônomo um HTML table (elementoTable, Panel, GridView, e Calendar) ou sistema autônomo um img (elementoImage, AdRotator). BorderWidth só funciona em navegadores de nível inferior se especificado em pixels; caso contrário, sempre, ele é processado sistema autônomo border=1 ou border=0. Além disso, BorderWidth só funciona com controles de tabela com base em se GridLines estiver definido como um valor diferente de None.Isso ocorre porque não é possível especificar uma borda sem linhas de grade em HTML 3.2.Para controles que processem elementos span, incluindo controles Label, controles de validação e controles de lista no modo Flow, BorderWidth funcionam no Internet Explorer 5 e posterior, mas não no Internet Explorer 4.0. |
CssClass |
Essa propriedade sempre é processada como o atributo class, independentemente do navegador.A maioria dos navegadores uplevel reconhecem o atributo class. |
Enabled |
Essa propriedade é usada para especificar se um controle gera seus eventos e funções.No Internet Explorer 4.0 ou posterior, a configuração Enabled para false tem o efeito de tornar a aparência do controle indisponível e bloqueada a partir de uma entrada, usando o atributo disabled=true. |
Font-Bold, Font-Italic, Font-Strikeout e propriedades similares |
Essas propriedades são processadas como atributos style para navegadores uplevel (por exemplo, Font-Weight para negrito e Font-Style para itálico) e como elementos independentes (por exemplo, b e i) para navegadores de nível inferior. |
Font-Size |
Esta propriedade funciona em navegadores de nível inferior para todos os controles somente se chamado tamanhos de fonte são usados (pequeno, menor, e assim por diante).Em navegadores uplevel, essa propriedade é processada como um atributo style; em navegadores de nível inferior, ela é processada como um elemento font. |
Font-Overline |
Esta propriedade não funciona em quaisquer navegadores de nível inferior. |
ForeColor |
Esta propriedade funciona em navegadores de nível inferior para todos os controles, exceto Image, AdRotator, HyperLink e LinkButton.Para navegadores de nível inferior, ForeColor é processado usando elementos font. |
Height |
Esta propriedade não funciona em navegadores de nível inferior para Label controles, validador controles, HyperLink controles, ou LinkButton controles. Height também não funciona para CheckBoxList, RadioButtonList, e DataList Controla se o layout desses controles é conjunto para Flow. Funcionam somente medidas pixel e porcentagem. Para controles de tabela com base, altura em tabelas internas não é processada para navegadores de nível inferior porque o atributo Height foi preterido no HTML 4.01.Isso resulta em uma aparência um pouco diferente entre o uplevel e processamento de nível inferior.A diferença mais óbvia estará se BackColor é conjunto sobre o SideBarStyle propriedade: em uplevel o BackColor parece ser o comprimento inteiro dessa coluna e em navegadores de nível inferior só será, desde que o necessário para acomodar sistema autônomo botões de texto. |
TabIndex |
Esta propriedade não funciona em quaisquer navegadores de nível inferior para os controles.Isto não é HTML 4.0 e funciona apenas no Internet Explorer 4.0 ou posterior. |
ToolTip |
Esta propriedade não funciona em quaisquer navegadores de nível inferior. |
Width |
Esta propriedade não funciona em navegadores de nível inferior para Label, HyperLink, LinkButton, ou controles de validação. Width também não funciona para CheckBoxList, RadioButtonList, e DataList Controla se o layout é definido como Flow. Funcionam somente medidas pixel e porcentagem. |
Consulte também
Tarefas
Como: Detectar tipos de navegador em páginas da Web do ASP.NET
Explicação Passo a Passo: Desenvolvendo e Usando um Controle de Servidor Personalizado
Referência
clientTarget elemento (esquema configurações ASP.NET)