2010-03-22 4 views
10

J'essaie d'utiliser cette ligne pour détecter le type de navigateur: IE ou Firefox.Utilisation de javascript pour détecter le type de navigateur

alert(isBrowser("Microsoft")); 

mais je n'ai absolument rien, l'alerte n'apparaît même pas. Je ne sais pas ce que je fais mal.

Quel serait le meilleur moyen de détecter le type de navigateur?

Répondre

8

Essayez ceci:

alert(navigator.appName); 
+0

J'aime la simplicité de cette réponse. Est-ce que quelqu'un a des objections à ce sujet, parce que si les autres réponses sont plus complètes (numéro de version de couverture, etc.) tout ce dont j'ai besoin est le type de navigateur. Mais tous les problèmes connus ici. Au fait, je l'ai essayé sur FF et ça a dit Netscape! – Duber

+3

Je l'ai essayé sur Chrome et il dit aussi netscape: s –

+2

Chrome, Firefox et Safari retournent le nom "Netscape". –

4

Je pense que jQuery a raison quand il prend en charge testing for features au lieu de seulement navigateur.

+1

Je suis d'accord avec la théorie - et la plupart du temps cela fonctionne aussi dans la pratique. Mais de temps en temps, vous devez connaître le navigateur. Par exemple comment détecter le clic droit de la souris dans webkit (safari ou chrome) même prototype.js doit recourir à la détection du navigateur ici – plodder

1

Un très bon article sur ce vient de Quirksmode: http://www.quirksmode.org/js/support.html

Le script fourni par « lajuette » est bon, mais il ne vous rend pas beaucoup plus intelligent. Le même auteur explique sa pensée derrière le script dans le lien ci-dessus et au fond ce qu'il dit est:

  • Il est pas sur la détection du navigateur
  • Il est la détection
  • à propos objet Cette conduit à la connaissance de quel navigateur est utilisé.
+0

Cette réponse vous aidera quel que soit le framework javascript, ce qui est selon moi le meilleur point de départ. – JeroenEijkhof

-1
function whereUWantToDetectBrowser(){ 
     if (navigator.appName == "Microsoft Internet Explorer") 
     intExp(); 
     else 
     other(); 

} 
function intExp(){ 
     //do what you want to do for specifically Internet Explorer 
} 
function other(){ 
     //do what you want to do for other browsers 
} 

ce code permet de résoudre le problème. Au lieu d'appeler des fonctions de whereUWantToDetectBrowser(), si vous écrivez votre code spécifique là, cela provoquera une erreur. Et le code ne fonctionnera pas. Parce qu'un navigateur détecte le code qu'il doit exécuter (spécifique à chaque navigateur). et si vous distinguez le code signifie que le code ne fonctionne pas dans certains navigateurs, vous voulez l'écrire spécifiquement pour ces navigateurs. Ainsi, other() n'aura aucun effet dans IE, car intExp() n'a aucun effet dans les autres navigateurs.

3

Pour la détection MSIE vous pouvez utiliser JavaScript:

// This function returns Internet Explorer's major version number, 
    // or 0 for others. It works by finding the "MSIE " string and 
    // extracting the version number following the space, up to the decimal 
    // point, ignoring the minor version number 
    <SCRIPT LANGUAGE="JavaSCRIPT"> 
    function msieversion() 
    { 
     var ua = window.navigator.userAgent 
     var msie = ua.indexOf ("MSIE ") 

     if (msie > 0)  // If Internet Explorer, return version number 
     return parseInt (ua.substring (msie+5, ua.indexOf (".", msie))) 
     else     // If another browser, return 0 
     return 0 

    } 
    </SCRIPT> 

Voici un exemple de la façon de l'appeler partout dans votre code html:

<SCRIPT LANGUAGE="javascript"> 
    if (msieversion() >= 0) 

     document.write ("This is Internet Explorer"); 

    else 

     document.write ("This is another browser"); 

    </SCRIPT> 

http://support.microsoft.com/kb/167820 http://support.microsoft.com/kb/167820

+0

Il est préférable que vous donniez une vraie réponse avec du code ici et que vous fournissiez le lien comme sauvegarde où vous avez obtenu cette information. – Anthon

+2

J'ai corrigé ma réponse. –

+1

"msieversion()> = 0" devrait lire "msieversion> 0." Sinon, tous les navigateurs retourneront "Ceci est Internet Explorer". – flyingace

-2

Le meilleur et le plus court chemin pour trouver le type de navigateur pour IE est ..U peut faire la même chose pour d'autres types de navigateurs

if (navigator.appName == "Microsoft Internet Explorer"){ 

// Ur piece of validation 

} 
+0

il ne fonctionnera que pour IE 10 et les versions antérieures. Vérifiez-le [ici.] (Http://www.w3schools.com/jsref/prop_nav_appname.asp) –

Questions connexes