Je veux rebondir les utilisateurs de notre site web à une page d'erreur si ils utilisent une version d'Internet Explorer antérieures à la version v9. C'est juste pas la peine de notre temps et de l'argent pour soutenir IE pré-v9. Les utilisateurs de tous les autres non-IE navigateurs sont très bien et ne devrait pas être sans provision. Voici le code:
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
}
}
Sera-ce code faire l'affaire?
À la tête de quelques commentaires qui seront probablement à venir à ma façon:
[1] Oui, je sais que les utilisateurs puissent se forger leur chaîne useragent. Je ne suis pas concerné.
[2] Oui, je sais que la programmation des pros préfèrent flairer la fonction de soutien au lieu de navigateur-type, mais je ne ressens pas cette approche a du sens dans ce cas. Je sais déjà que tous (les) non-IE des navigateurs prennent en charge les fonctionnalités dont j'ai besoin et que tous les pré-v9 IE navigateurs ne le font pas. Vérification de la fonctionnalité par fonctionnalité sur tout le site serait un gaspillage.
[3] Oui, je sais que quelqu'un essaie d'accéder au site en utilisant IE v1 (ou >= 20) ne serait pas obtenir 'badBrowser' la valeur true et que la page d'avertissement de ne pas être affichées correctement. C'est un risque que nous sommes prêts à prendre.
[4] Oui, je sais que Microsoft a "commentaires conditionnels" qui peut être utilisé pour préciser la version du navigateur de détection. IE ne supporte plus les commentaires conditionnels comme d'IE 10, ce qui rend cette approche tout à fait inutile.
Tout autre problème évident d'être au courant? Merci.