web-dev-qa-db-fra.com

Vérifiez IE 10

Comment faire apparaître une boîte de message lors du chargement de la page si l'utilisateur utilise IE 10?

function ieMessage() {
    alert("Hello you are using I.E.10");
}

Ma page Web est une facette JSF (XHTML).

43
user2292674

La véritable façon de détecter cela, sans commentaires conditionnels et sans reniflement d'agent utilisateur, est la compilation conditionnelle:

<script type="text/javascript">
    var isIE10 = false;
    /*@cc_on
        if (/^10/.test(@_jscript_version)) {
            isIE10 = true;
        }
    @*/
    console.log(isIE10);
</script>

Après avoir exécuté ce code, vous pouvez utiliser les éléments suivants à tout moment après:

if (isIE10) {
    // Using Internet Explorer 10
}

Référence: Comment puis-je détecter IE10 de JS lorsque le mode navigateur est IE9?


MISE À JOUR:

Pour éviter la minification des commentaires, vous pouvez utiliser quelque chose comme:

var IE = (function () {
    "use strict";

    var ret, isTheBrowser,
        actualVersion,
        jscriptMap, jscriptVersion;

    isTheBrowser = false;
    jscriptMap = {
        "5.5": "5.5",
        "5.6": "6",
        "5.7": "7",
        "5.8": "8",
        "9": "9",
        "10": "10"
    };
    jscriptVersion = new Function("/*@cc_on return @_jscript_version; @*/")();

    if (jscriptVersion !== undefined) {
        isTheBrowser = true;
        actualVersion = jscriptMap[jscriptVersion];
    }

    ret = {
        isTheBrowser: isTheBrowser,
        actualVersion: actualVersion
    };

    return ret;
}());

Et accédez aux propriétés comme IE.isTheBrowser et IE.actualVersion (qui est traduit à partir des valeurs internes des versions JScript).

55
Ian

En général, il est préférable d'éviter la pratique de reniflement d'agent utilisateur et de compilation/commentaires conditionnels. Il est préférable d'utiliser à la place détection de fonctionnalités , dégradation gracieuse et amélioration progressive . Cependant, pour les quelques cas Edge où il est plus pratique pour le développeur de détecter la version du navigateur, vous pouvez utiliser les extraits de code suivants:

Cette instruction if ne s'exécutera que sur IE 10

// IF THE BROWSER IS INTERNET Explorer 10
if (navigator.appVersion.indexOf("MSIE 10") !== -1)
{
    window.alert('This is IE 10');
}

Cette instruction if ne s'exécutera que sur IE 11

// IF THE BROWSER IS INTERNET Explorer 11
var UAString = navigator.userAgent;
if (UAString.indexOf("Trident") !== -1 && UAString.indexOf("rv:11") !== -1)
{
    window.alert('This is IE 11');
}

http://jsfiddle.net/Qz97n/

32
Alex W

Voici une méthode pour obtenir la version IE ou la version IE IE:

function IE(v) {
  return RegExp('msie' + (!isNaN(v)?('\\s'+v):''), 'i').test(navigator.userAgent);
}

Voici comment vous pouvez l'utiliser:

if(IE())   alert('Internet Explorer!');
if(IE(10)) alert('Internet Explorer 10!');
20
Daryl Ginn