2009-01-09 7 views
3

J'ai une spécification dans mon projet actuel qui nous oblige à indiquer à l'utilisateur quels navigateurs sont les meilleurs pour utiliser l'application Web. Si la version actuelle de leur navigateur ne figure pas dans notre liste de navigateurs «idéaux», nous voulons afficher un message.La version du navigateur de détection

Quelle est la meilleure façon de vérifier une version spécifique du navigateur de l'utilisateur. Je suis conscient de ce qui suit en utilisant jQuery mais cela n'aide pas avec des versions spécifiques.

$(document).ready(function() { 
    var b = ''; 
    $.each($.browser, function(i, val) { 
     if (i=='safari' && val==true) { b = 'safari'; } 
     if (i=='opera' && val==true) { b = 'opera'; } 
     if (i=='msie' && val==true) { b = 'msie'; } 
     if (i=='mozilla' && val==true) {b = 'mozilla'; } 
    }); 

    //Do Something With b, Like $('#dis').html(b); 
}); 

Nous voulons être en mesure de dire est votre navigateur Firexfox 2 ou supérieur ou IE6 ou plus etc etc?

Répondre

2

Consultez le YUI User-Agent Detection.

EDIT: Maintenant que je vous ai dit comment, je veux juste m'assurer que vous savez que cela est généralement considéré comme un anti-modèle, non? Si vous le pouvez, je vous recommande de ne pas faire quelque chose comme ça, mais je réalise que ce n'est pas toujours une option.

+0

Merci pour cela, mais je ne suis pas sûr de savoir comment la détection YUI diffère de l'exemple JQuery que j'ai donné? Il n'a toujours pas la version du navigateur, par exemple Firefox 3.0.5. Il ne renvoie que Firefox. Il serait également préférable que nous utilisions la bibliothèque JQuery de JavaScript standard car c'est ce que nous utilisons déjà. – Sheff

+0

Je suis assez sûr qu'il renvoie un numéro de version, pas un simple booléen. –

4

Vérifiez aussi .browser.version $ dans le docs.jquery.com

Il peut revenir 2.0 pour Firefox 2.xx, consultez la documentation :)

0

Les versions Internet Explorer 10 et supérieures se comportent différemment d'IE 9 et des versions ultérieures. Lorsque vous utilisez javascript, vous devez gérer ces scénarios différemment. Le code suivant a fonctionné pour moi :)

//MSStream object supported only for IE 10 and 11 (hope this will work for above IE 11 too ..) 
    var isIE10or11 = window.MSStream; 

    //FormData object allow you to send form data as key and value pairs with ajax requests. Supported in modern browsers. 
    var isFormDataSupported = (window.FormData !== undefined); 

    if(isIE10or11 && isFormDataSupported){ 
     alert('IE 10 or 11'); 
    } 
    else if(!isIE10or11 && isFormDataSupported){ 
     alert('HTML 5 browser Excluding IE'); 
    } 
    else{ 
     //Neither supports MSStream nor FormData object 
     alert('IE Version 9 or below'); 
    } 
Questions connexes