web-dev-qa-db-fra.com

Détecter si tout type de IE (MSIE)

Je ne souhaite pas permettre aux utilisateurs d'accéder à mon site avec Microsoft Internetexplorer (ANY VERSION).

Ce que j’ai trouvé jusqu’à présent, c’était de détecter s’il s’agissait d’une version 10 inférieure ou égale.

Une chose très angoissante: Internetexplorer> v10 n’admet pas être un InternetExplorer.

Ce que j'ai trouvé et essayé jusqu'à présent:

if(navigator.appVersion.indexOf("MSIE")!=-1){
alert("You use IE. That´s no good.");
}

ou

if ( $.browser.msie ) {
alert( $.browser.version );
}

et

http://msdn.Microsoft.com/en-us/library/ie/ms537509%28v=vs.85%29.aspx

J'utiliserais n'importe quelle solution si elle est en javascript, jquery ou php s'il y en a une.

48
WorkersGonnaWork

Cela fonctionne pour moi pour détecter toute version du IE 5-11 (Internet Explorer) (Aug/05/2014):

if (navigator.appName == 'Microsoft Internet Explorer' ||  !!(navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/)) || (typeof $.browser !== "undefined" && $.browser.msie == 1))
{
  alert("Please dont use IE.");
}
83
Top Questions

En effet, chaque version d'Internet Explorer met à jour le chaîne d'agent utilisateur .

MSIE les jetons ont été supprimés dans Internet Explorer 11 et $.browser les usages navigator.userAgent pour déterminer la plate-forme et celle-ci est supprimée dans jQuery 1.9.

Vous pouvez utiliser le code suivant pour déterminer le navigateur avec un script Java pur.

var isIE = !!navigator.userAgent.match(/Trident/g) || !!navigator.userAgent.match(/MSIE/g);

if(isIE){
 alert("IE"); 
}
else{
 alert("Not IE");   
}

Merci!

26
Saranga

si vous n’êtes pas intéressé par la version de l’utilisateur actuellement utilisé, vous pouvez essayer de le faire fonctionner en détectant si le navigateur supporte le Conditional Compilation Statements

http://msdn.Microsoft.com/en-us/library/7kx09ct1%28v=vs.80%29.aspx

if(/*@cc_on!@*/false)
{
    // You use IE. That´s no good.
    alert("oh my god");
}
7
ins0

Vous pouvez utiliser compilation conditionnelle , par exemple.

<script>
var isIE = false;
/*@cc_on isIE = true; @*/
</script>

Mais notez que IE11 n'observe pas cela en mode standard. Le reniflage d'agent utilisateur est généralement une mauvaise idée, mais à mesure que IE devient plus conforme aux normes, il devient également plus difficile à détecter (nous espérons également que cela signifie moins de nécessité).

4
Tim

Pour IE> 10 qui est actuellement IE 11, l'agent utilisateur transporte quelque chose dans les en-têtes de requête HTTP du navigateur.

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; règle générale: 11.) comme Gecko

Vous pouvez cocher la case "version: 11." pour la version 11. Faites-moi savoir si vous avez besoin de code pour cela.

1
user3859423

J'ai trouvé (peut-être dans SO) dans le passé ce script et cela a fonctionné pour moi (IE 10 aussi)

<![if IE]>
<script type='text/javascript'>
if(/*@cc_on!@*/false)
var bIsIE = 1;
</script>
<![endif]>

et alors

if (typeof (bIsIE) != 'undefined')
{
    //IE :(
}
else
{
    //NOT IE :)
}
1
faby