Comment obtenir le nom du navigateur côté client?

Y a-t-il un objet/méthode qui me donnera des informations sur le navigateur, côté client?

Par exemple, j'ai besoin de détecter le navigateur IE. J'utilise:

function st_IsIE()
{
    if(navigator.appName.indexOf("Microsoft Internet Explorer") != -1)
    {
        return true;
    }
    return false;
}

Est-il un meilleur moyen?

21
demandé sur Cuong Le 2012-09-19 10:29:35

8 réponses

EDIT: puisque la réponse n'est pas valide avec les nouvelles versions de jquery comme jQuery.le navigateur est obsolète dans ver 1.9, utilisez donc Jquery greffon migrer d'ailleurs.


Réponse Originale À Cette Question

JQuery.navigateur

jQuery.browser et jQuery.browser.version

Est votre chemin à parcourir...

12
répondu Rab 2016-06-16 15:53:38

Côté JavaScript - vous pouvez obtenir le nom du navigateur comme ceci...

if(window.navigator.appName == "") OR if(window.navigator.userAgent == "")
16
répondu pedram 2015-10-29 13:08:37

C'est une solution JavaScript pure . Qui m'a demandé.
J'ai essayé sur plusieurs navigateurs. Il fonctionne très bien. Espérons que cela aide.

Comment détecter le nom du navigateur ?

Vous pouvez utiliser le navigator.appName et navigator.userAgent propriétés. La propriété userAgent est plus fiable que appName car, par exemple, Firefox (et certains autres navigateurs) peut renvoyer la chaîne "Netscape" comme valeur de navigator.appName pour la compatibilité avec Netscape Navigator.

Remarque, cependant, cela navigator.userAgent peut également être usurpé - c'est-à-dire que les clients peuvent remplacer pratiquement n'importe quelle chaîne pour leur userAgent. Par conséquent, tout ce que nous déduisons de appName ou userAgent devrait être pris avec un grain de sel.

var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera, the true version is after "Opera" or after "Version"
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
   browserName = "Opera";
   fullVersion = nAgt.substring(verOffset+6);
   if ((verOffset=nAgt.indexOf("Version"))!=-1) 
     fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
   browserName = "Microsoft Internet Explorer";
   fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
   browserName = "Chrome";
   fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
   browserName = "Safari";
   fullVersion = nAgt.substring(verOffset+7);
   if ((verOffset=nAgt.indexOf("Version"))!=-1) 
     fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
    browserName = "Firefox";
    fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) {
    browserName = nAgt.substring(nameOffset,verOffset);
    fullVersion = nAgt.substring(verOffset+1);
    if (browserName.toLowerCase()==browserName.toUpperCase()) {
       browserName = navigator.appName;
    }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
    fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
    fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
    fullVersion  = ''+parseFloat(navigator.appVersion); 
    majorVersion = parseInt(navigator.appVersion,10);
}

document.write(''
                +'Browser name  = '+browserName+'<br>'
                +'Full version  = '+fullVersion+'<br>'
                +'Major version = '+majorVersion+'<br>'
                +'navigator.appName = '+navigator.appName+'<br>'
                +'navigator.userAgent = '+navigator.userAgent+'<br>');

À Partir de la source javascripter.net

13
répondu Aniket Kulkarni 2014-03-14 10:09:01

En c # vous votre nom de navigateur en utilisant:

System.Web.HttpBrowserCapabilities browser = Request.Browser;

Pour plus de détails voir un lien.

Http://msdn.microsoft.com/en-us/library/3yekbd5b%28v=vs.100%29.aspx

Et côté Client:

JQuery:

jQuery.browser

Pour plus de détails voir un lien:

Http://api.jquery.com/jQuery.browser/

6
répondu Shree 2012-09-19 06:39:35

Le navigateur le divulgue dans navigator.userAgent. Si vous utilisez jQuery, vous feriez mieux d'utiliser jQuery.browser comme l'a dit @Rab Nawaz. Cependant, comme le dit la documentation de L'API, il est préférable de vérifier la prise en charge des fonctionnalités si possible. Citant la documentation:

Nous vous recommandons de ne pas utiliser cette propriété; essayez d'utiliser la détection des fonctionnalités à la place (voir jQuery.soutien). jQuery.le navigateur peut être déplacé vers un plugin dans une future version de jQuery.

Voici un code exemple:

function isIE() {
    if (window.jQuery) {
        return jQuery.browser.msie || false;
    } else {
        // adapted from jQuery's source:
        return navigator.userAgent.toLowerCase().indexOf('msie') >= 0;
    }
}
3
répondu Hosam Aly 2012-09-19 06:47:34

Il est tout au sujet de ce que vous voulez vraiment faire, mais dans les temps à venir et en ce moment, la meilleure façon est d'éviter la détection du navigateur et vérifier les fonctionnalités. comme Toile, Audio, les WebSockets, etc par le biais de javascript simple d'appels ou dans votre CSS, pour moi, votre meilleure approche est d'utiliser un outil comme ModernizR:

Contrairement à la méthode traditionnelle-mais très peu fiable-de faire "UA sniffing", qui détecte un navigateur par son (configurable par l'utilisateur) navigator.userAgent propriété, Modernizr fait la détection de fonctionnalité réelle pour discerner de manière fiable ce que les différents navigateurs peuvent et ne peuvent pas faire.

Si vous utilisez CSS, vous pouvez le faire:

.no-js .glossy,
.no-cssgradients .glossy {
    background: url("images/glossybutton.png");
}

.cssgradients .glossy {
    background-image: linear-gradient(top, #555, #333);
}

Car il chargera et ajoutera toutes les fonctionnalités en tant que nom de classe dans l'élément <html> et vous pourrez faire ce que vous voulez en termes de CSS.

Et vous pouvez même charger des fichiers sur les fonctionnalités, par exemple, charger un polyfill JS et CSS si le navigateur n'a pas natif soutien

Modernizr.load([
  // Presentational polyfills
  {
    // Logical list of things we would normally need
    test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients,
    // Modernizr.load loads css and javascript by default
    nope : ['presentational-polyfill.js', 'presentational.css']
  },
  // Functional polyfills
  {
    // This just has to be truthy
    test : Modernizr.websockets && window.JSON,
    // socket-io.js and json2.js
    nope : 'functional-polyfills.js',
    // You can also give arrays of resources to load.
    both : [ 'app.js', 'extra.js' ],
    complete : function () {
      // Run this after everything in this group has downloaded
      // and executed, as well everything in all previous groups
      myApp.init();
    }
  },
  // Run your analytics after you've already kicked off all the rest
  // of your app.
  'post-analytics.js'
]);

Un exemple simple de demande de fonctionnalités à partir de javascript:

Http://jsbin.com/udoyic/1

2
répondu balexandre 2012-09-19 06:54:13

Ceci est répondu dans

Comment détecter Safari, Chrome, IE, Firefox et Opera navigateur?

Vérifier this le violon.

J'espère que cela aide.

2
répondu Steven Dsouza 2017-05-23 12:32:35

CE code renverra "browser " et"browserVersion"
Fonctionne sur 95% des navigateurs 80+

var geckobrowsers;
var browser = "";
var browserVersion = 0;
var agent = navigator.userAgent + " ";
if(agent.substring(agent.indexOf("Mozilla/")+8, agent.indexOf(" ")) == "5.0" && agent.indexOf("like Gecko") != -1){
    geckobrowsers = agent.substring(agent.indexOf("like Gecko")+10).substring(agent.substring(agent.indexOf("like Gecko")+10).indexOf(") ")+2).replace("LG Browser", "LGBrowser").replace("360SE", "360SE/");
    for(i = 0; i < 1; i++){
        geckobrowsers = geckobrowsers.replace(geckobrowsers.substring(geckobrowsers.indexOf("("), geckobrowsers.indexOf(")")+1), "");
    }
    geckobrowsers = geckobrowsers.split(" ");
    for(i = 0; i < geckobrowsers.length; i++){
        if(geckobrowsers[i].indexOf("/") == -1)geckobrowsers[i] = "Chrome";
        if(geckobrowsers[i].indexOf("/") != -1)geckobrowsers[i] = geckobrowsers[i].substring(0, geckobrowsers[i].indexOf("/"));
    }
    if(geckobrowsers.length < 4){
        browser = geckobrowsers[0];
    } else {
        for(i = 0; i < geckobrowsers.length; i++){
            if(geckobrowsers[i].indexOf("Chrome") == -1 && geckobrowsers[i].indexOf("Safari") == -1 && geckobrowsers[i].indexOf("Mobile") == -1 && geckobrowsers[i].indexOf("Version") == -1)browser = geckobrowsers[i];
        }
    }
    browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));
} else if(agent.substring(agent.indexOf("Mozilla/")+8, agent.indexOf(" ")) == "5.0" && agent.indexOf("Gecko/") != -1){
    browser = agent.substring(agent.substring(agent.indexOf("Gecko/")+6).indexOf(" ") + agent.indexOf("Gecko/")+6).substring(0, agent.substring(agent.substring(agent.indexOf("Gecko/")+6).indexOf(" ") + agent.indexOf("Gecko/")+6).indexOf("/"));
    browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));
} else if(agent.substring(agent.indexOf("Mozilla/")+8, agent.indexOf(" ")) == "5.0" && agent.indexOf("Clecko/") != -1){
    browser = agent.substring(agent.substring(agent.indexOf("Clecko/")+7).indexOf(" ") + agent.indexOf("Clecko/")+7).substring(0, agent.substring(agent.substring(agent.indexOf("Clecko/")+7).indexOf(" ") + agent.indexOf("Clecko/")+7).indexOf("/"));
    browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));
} else if(agent.substring(agent.indexOf("Mozilla/")+8, agent.indexOf(" ")) == "5.0"){
    browser = agent.substring(agent.indexOf("(")+1, agent.indexOf(";"));
    browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));
} else if(agent.substring(agent.indexOf("Mozilla/")+8, agent.indexOf(" ")) == "4.0" && agent.indexOf(")")+1 == agent.length-1){
    browser = agent.substring(agent.indexOf("(")+1, agent.indexOf(")")).split("; ")[agent.substring(agent.indexOf("(")+1, agent.indexOf(")")).split("; ").length-1];
} else if(agent.substring(agent.indexOf("Mozilla/")+8, agent.indexOf(" ")) == "4.0" && agent.indexOf(")")+1 != agent.length-1){
    if(agent.substring(agent.indexOf(") ")+2).indexOf("/") != -1)browser = agent.substring(agent.indexOf(") ")+2, agent.indexOf(") ")+2+agent.substring(agent.indexOf(") ")+2).indexOf("/"));
    if(agent.substring(agent.indexOf(") ")+2).indexOf("/") == -1)browser = agent.substring(agent.indexOf(") ")+2, agent.indexOf(") ")+2+agent.substring(agent.indexOf(") ")+2).indexOf(" "));
    browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));
} else if(agent.substring(0, 6) == "Opera/"){
    browser = "Opera";
    browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));
    if(agent.substring(agent.indexOf("(")+1).indexOf(";") != -1)os = agent.substring(agent.indexOf("(")+1, agent.indexOf("(")+1+agent.substring(agent.indexOf("(")+1).indexOf(";"));
    if(agent.substring(agent.indexOf("(")+1).indexOf(";") == -1)os = agent.substring(agent.indexOf("(")+1, agent.indexOf("(")+1+agent.substring(agent.indexOf("(")+1).indexOf(")"));
} else if(agent.substring(0, agent.indexOf("/")) != "Mozilla" && agent.substring(0, agent.indexOf("/")) != "Opera"){
    browser = agent.substring(0, agent.indexOf("/"));
    browserVersion = agent.substring(agent.indexOf(browser)+browser.length+1, agent.indexOf(browser)+browser.length+1+agent.substring(agent.indexOf(browser)+browser.length+1).indexOf(" "));
} else {
    browser = agent;
}
alert(browser + " v" + browserVersion);
2
répondu Jason D'Souza 2017-04-13 09:11:15