Desejo devolver os usuários do nosso site a uma página de erro se eles estiverem usando uma versão Internet Explorer
anterior à v9. Simplesmente não vale nosso tempo e dinheiro para apoiar IE pre-v9
. Os usuários de todos os outros navegadores que não sejam do IE são bons e não devem ser devolvidos. Aqui está o código proposto:
if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}
}
Esse código fará o truque?
Para evitar alguns comentários que provavelmente aparecerão no meu caminho:
- Sim, eu sei que os usuários podem forjar suas
useragent
string. Eu não estou preocupado. - Sim, eu sei que os profissionais de programação preferem farejar o suporte a recursos em vez do tipo de navegador, mas não acho que essa abordagem faça sentido nesse caso. Eu já sei que todos os navegadores (relevantes) que não são do IE suportam os recursos que eu preciso e que todos
pre-v9 IE
navegadores não. Verificar recurso por recurso em todo o site seria um desperdício. - Sim, eu sei que alguém tentando acessar o site usando
IE v1
(ou> = 20) não conseguiria 'badBrowser' definido como true e a página de aviso não seria exibida corretamente. Esse é um risco que estamos dispostos a correr. - Sim, eu sei que a Microsoft tem "comentários condicionais" que podem ser usados para detecção precisa da versão do navegador. O IE não suporta mais comentários condicionais a partir de
IE 10
, tornando essa abordagem absolutamente inútil.
Quaisquer outros problemas óbvios para estar ciente?