web-dev-qa-db-fra.com

Comment détecter un navigateur avec Angular?

Je dois détecter si le navigateur est IE ou Edge with Angular (TypeScript). C'est possible? Si c'est le cas, comment?

16
Liutas

Je l'ai déjà utilisé et cela a bien fonctionné.

let isIEOrEdge = /msie\s|trident\/|Edge\//i.test(window.navigator.userAgent)
25
argoo

Veuillez utiliser le code suivant:

// Opera 8.0+
    var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

    // Firefox 1.0+
    var isFirefox = typeof InstallTrigger !== 'undefined';

    // Safari 3.0+ "[object HTMLElementConstructor]" 
    var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);

    // Internet Explorer 6-11
    var isIE = /*@cc_on!@*/false || !!document.documentMode;

    // Edge 20+
    var isEdge = !isIE && !!window.StyleMedia;

    // Chrome 1+
    var isChrome = !!window.chrome && !!window.chrome.webstore;
    // If isChrome is undefined, then use:
    // var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
    // Blink engine detection
    var isBlink = (isChrome || isOpera) && !!window.CSS;

var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isEdge: ' + isEdge + '<br>';
output += 'isBlink: ' + isBlink + '<br>';
document.body.innerHTML = output;

12
I. Ahmed

Vous pouvez utiliser regex avec useragent pour détecter IE.

 private isIE() {
    const match = navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/);
    let isIE = false;

    if (match !== -1) {
        isIE = true;
    }

    return isIE;
}

mais, il est toujours recommandé d'utiliser la détection de fonctionnalités au lieu de la détection du navigateur. Vous pouvez utiliser la bibliothèque modernizr pour cela https://modernizr.com

0
Amit Gaikwad