Qual é a melhor maneira de mostrar uma mensagem apenas para o IE 6 e IE 7?

11

Qual é a melhor maneira de mostrar uma mensagem de texto apenas para o IE 6 e IE 7?

Devo adicionar uma tag html às minhas páginas da Web e normalmente a ocultar com css para todos os navegadores, exceto os mencionados acima?

E quando eu uso o IE6 IE7, devo ocultar o site com css e mostrar apenas a tag html?

obrigado

aneuryzm
fonte
Seu objetivo é manter os usuários do IE6 e 7 fora do seu site?
John Conde
@John Conde yeah
aneuryzm
Encontre um vírus IE 6 e 7 e coloque-o na sua página. Se eles são infectados, têm o IE, fazem o vírus invadir o navegador e mostram uma mensagem de texto sempre que carregam o site ... Brincadeira! ;)
Itai

Respostas:

0

É difícil limitar o acesso a um site pelo navegador, porque não existe uma maneira 100% infalível de fazê-lo.

Seu primeiro problema é a falsificação de agente de usuário. Os navegadores podem se identificar com qualquer agente de usuário que desejarem. Todos os navegadores com extensões parecem ter um que torna isso trivial. Se alguém com o IE6 ou o IE7 mudar seu agente de usuário para o IE8 ou Firefox, eles entrarão em um site.

Você pode usar o JavaScript para solucionar esse problema usando a detecção de recursos . Basicamente, você usa o JavaScript para fazer um teste simples: verifica se existe alguma funcionalidade que não existe no IE6 ou IE7. Se não, você sabe que são eles. O problema é que, se eles desativam o JavaScript, ignoram isso facilmente.

Uma abordagem de várias camadas seria detectar o navegador do lado do servidor usando seu user agent, de preferência no Apache ou IIS, e redirecionar esses usuários para uma página informando que você não oferece suporte ao navegador. BTW, isso é mais educado do que simplesmente ocultar o site. Eu aumentaria isso com o método de detecção de recurso JavaScript. Entre os dois, você encontrará todos, exceto os usuários tecnicamente mais experientes, e as chances são de que eles não estejam usando o IE6 ou IE7 de qualquer maneira.

John Conde
fonte
@ John Conde Minhas perguntas na verdade não era sobre como detectar o navegador, mas como mostrar conteúdo diferente uma vez que o navegador foi detectado
aneuryzm
1
Isso é tão fácil quanto um redirecionamento, dependendo de como você escolhe farejar o navegador. Se você escolher o Apache, redirecione para uma página especial em um arquivo .htaccess. Se você escolher JavaScript, use window.location. Apenas tentar ocultar o site com CSS ainda torna tudo disponível para o usuário. Eles simplesmente não conseguem vê-lo sem um pouco de esforço. Dessa maneira, você os afasta completamente do conteúdo.
John Conde
@ John Conde oh yeah, você direita
aneuryzm
5
existe uma maneira 100% infalível de fazer isso, especificamente para navegadores IE. e isso é comentários condicionais. dizer que não há como, e depois elaborar maneiras pelas quais ele não funcionará com agentes do usuário não é uma boa resposta para essa pergunta em particular, pois isso pode ser feito sem a detecção do agente do usuário.
Evgeny
2
Não acredito que essa foi a resposta correta.
Marco Demaio 22/11/2010
5

Comentários CSS condicionais ou use a detecção do navegador JQUERY:

Link para comentários condicionais de CSS

Link para detecção do navegador Jquery

Usando esses itens, você pode definir estilos como ocultar as divs do conteúdo normal e exibir as divs do conteúdo alternativo. Ou use JS para alterar o conteúdo e como ele é exibido.

Se você está procurando apenas remover tudo para os usuários do IE6 e mostrar a eles uma mensagem solicitando a atualização, você pode definir o CSS para ocultar tudo dentro do corpo e acionar um alerta com a detecção de jquery. É duro, mas deve funcionar a maior parte do tempo, desde que não esteja tentando ser furtivo ou ignorar isso. Nesse caso, eles provavelmente não são as pessoas que você está alvejando.

XOPJ
fonte
Com +1, os comentários condicionais funcionam melhor na maioria dos casos, pois apenas os navegadores do IE os "entendem".
Evgeny
1
Usando a detecção do navegador jQuery para mostrar uma mensagem no IE 6/7, é como tentar entrar em sua casa pela janela em vez de usar a porta.
Marco Demaio 02/11/10
Marco esse comentário é brilhante! Infelizmente, é uma escolha que temos em nosso kit de ferramentas, mas eu sempre o imagino entrando em uma janela da minha casa agora. Adoro!
XOPJ
4

Adicione esse tipo de comentário condicional em HTML à fonte HTML da página

<!--[if IE 6]>
<h1>Hello, u r using IE6, your message here</h1>
<![endif]-->

<!--[if IE 7]>
<h1>Hello, u r using IE7, your message here</h1>
<![endif]-->

<!--[if lt IE 8]>
<h1>Hello you are using a version of IE less than IE8, your message here</h1>
<![endif]-->

Todos os itens acima serão ignorados como comentário HTML normal por TODOS os navegadores, exceto o IE, que os analisará e aplicará conforme necessário.

Marco Demaio
fonte
0

Então - qual é o motivo para querer "ocultar o site" do ie6 / 7? se for uma mensagem específica do agente do usuário, eu votaria em comentários condicionais.

folclore
fonte
0

o motivo pelo qual você mostraria conteúdo diferente é o uso do HTML5, que não é compatível com o IE7 e abaixo?

Michael GP Moriarty
fonte