alguns navegadores IE estão mostrando verdadeiro para a detecção do navegador IE6

Então, eu estou executando o jQuery 1.3.2 (sim, ele é antigo e agora não posso atualizar).

O problema é que estou tentando descartar o suporte ao IE6 para nosso site interno e atualizar o navegador. Eu tenho esse cheque

if($.browser.msie && $.browser.version=="6.0") { // do something... } 

Mas durante o teste (alguns) os usuários do Firefox estão vendo a condição de do something e não devem estar. Aqui estão alguns dos agentes do usuário que podem estar causando o problema.

  • UserAgent: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 535.7 (KHTML, como o Gecko) Chrome / 16.0.912.75 Safari / 535.7
  • UserAgent: Mozilla / 5.0 (Windows; U; Windows NT 5.1; pt-BR; rv: 1.9.2.23) Gecko / 20110920 Firefox / 3.6.23
  • UserAgent: Mozilla / 5.0 (Windows NT 5.1) AppleWebKit / 535.7 (KHTML, como o Gecko) Chrome / 16.0.912.75 Safari / 535.7
  • UserAgent: Mozilla / 5.0 (Windows; U; Windows NT 6.1; pt-BR; rv: 1.9.2.25) Gecko / 20111212 Firefox / 3.6.25
  • UserAgent: Mozilla / 5.0 (Windows; U; Windows NT 5.1; pt-BR; rv: 1.9.2.12) Gecko / 20101026 Firefox / 3.6.12

Existe mais validação do IE6 que eu preciso?

Nota: O usuário final não possui complementos instalados. Eu estava pensando em algo como o IE-Tabs poderia causar o problema, mas esse não é o caso

ATUALIZAR:

Todas as respostas abaixo me levam a isso, ainda testando, mas parece bom. Algum pensamento sobre como melhorá-lo?

 var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object"; if(typeof document.body.style.maxHeight === "undefined" && ie6) { alert('Your browser is IE6'); } 

Perguntas relacionadas:

  • jQuery detectar IE6 usando jQuery.support NÃO jQuery.browser
  • Detectando o IE6 usando jQuery.support

Não use a detecção do navegador . A detecção de resources é muito melhor. E se você quiser exibir uma mensagem ou algo para apenas usuários do IE 6, eu recomendaria o uso de comentários condicionais .

  

Da documentação do jQuery

A propriedade $ .browser está obsoleta no jQuery 1.3 e sua funcionalidade pode ser movida para um plug-in suportado por equipe em uma versão futura do jQuery ….

É sempre melhor evitar todo o código específico do navegador, sempre que possível. A propriedade $ .support está disponível para detecção de suporte para resources específicos, em vez de depender do $ .browser.

Altenatively você pode usar:

  1. Escrever um detector de navegador custome usando o object navigator
  2. IE declarações condicionais, algo como isto

Obrigado a todos por me ajudarem a encontrar o que eu estava procurando, talvez isso possa ajudar os outros

 var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object"; if(typeof document.body.style.maxHeight === "undefined" && ie6) { alert('Your browser is IE6'); } 

Se você quiser uma linha de script para encontrar o IE6 e abaixo e você não pode usar comentários condicionais:

if (‘\ v’ === ‘v’ &&! window.XMLHttpRequest) {// faz alguma coisa …}

Qual é a coisa que você está tentando fazer que requer saber se o navegador é o IE6? Vamos eliminar isso.

Intereting Posts