Je souhaite renvoyer les utilisateurs de notre site Web vers une page d'erreur s'ils utilisent une version Internet Explorer
antérieure à la v9. Cela ne vaut tout simplement pas notre temps et notre argent pour soutenirIE pre-v9
. Les utilisateurs de tous les autres navigateurs non IE vont bien et ne devraient pas être renvoyés. Voici le code proposé:
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
}
}
Ce code fera-t-il l'affaire?
Pour éviter quelques commentaires qui viendront probablement à ma rencontre:
- Oui, je sais que les utilisateurs peuvent forger leur
useragent
chaîne. Je ne suis pas inquiet. - Oui, je sais que les pros de la programmation préfèrent renifler la prise en charge des fonctionnalités plutôt que le type de navigateur, mais je ne pense pas que cette approche soit logique dans ce cas. Je sais déjà que tous les navigateurs (pertinents) non IE prennent en charge les fonctionnalités dont j'ai besoin et que tous
pre-v9 IE
navigateurs ne le font pas. La vérification fonctionnalité par fonctionnalité sur l'ensemble du site serait un gaspillage. - Oui, je sais que quelqu'un essaie d'accéder au site en utilisant
IE v1
(ou> = 20) ne mettrait pas «badBrowser» sur true et la page d'avertissement ne s'afficherait pas correctement. C'est un risque que nous sommes prêts à prendre. - Oui, je sais que Microsoft a des "commentaires conditionnels" qui peuvent être utilisés pour une détection précise de la version du navigateur. IE ne prend plus en charge les commentaires conditionnels depuis
IE 10
, ce qui rend cette approche absolument inutile.
Y a-t-il d'autres problèmes évidents à connaître?