51 votes

Quel est le remplacement de $ .browser

Les balises de document jQuery $.browser sont déconseillées. Alors, quel est le remplacement pour cela?

37voto

takien Points 176

Basé sur le plugin de migration jQuery , j'ai trouvé ceci.

 jQuery.uaMatch = function( ua ) {
    ua = ua.toLowerCase();
    var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
        /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
        /(msie) ([\w.]+)/.exec( ua ) ||
        ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || [];
    return {
        browser: match[ 1 ] || "",
        version: match[ 2 ] || "0"
    };
};
if ( !jQuery.browser ) {
    var 
    matched = jQuery.uaMatch( navigator.userAgent ),
    browser = {};
    if ( matched.browser ) {
        browser[ matched.browser ] = true;
        browser.version = matched.version;
    }
    // Chrome is Webkit, but Webkit is also Safari.
    if ( browser.chrome ) {
        browser.webkit = true;
    } else if ( browser.webkit ) {
        browser.safari = true;
    }
    jQuery.browser = browser;
}
 

24voto

kapa Points 41886

Les docs de l'état à ceci:

L' $.navigateur propriété est supprimée de la version de jQuery 1.3, et son la fonctionnalité peut être déplacé à une équipe pris en charge plugin dans un avenir version de jQuery.

Semble comme il n'y a pas de remplacement (vous pouvez utiliser un plugin). Aussi, vous pouvez le trouver dans la doc:

Il est toujours préférable d'éviter spécifiques à un navigateur de code lorsque le possible. L' $.le soutien de la propriété est disponible pour la détection de soutien pour les fonctionnalités particulières, plutôt que de s'appuyer sur $.le navigateur.

En fonction de la détection du navigateur n'est pas une bonne idée. La détection de fonctionnalité est la voie à suivre (Modernizr est un outil idéal pour cela).

3voto

nnnnnn Points 70578

Il n'y a pas de remplacement direct. Vous devriez utiliser la détection de fonctionnalités plutôt que la détection de navigateur (avez-vous une bonne raison de connaître le navigateur?), Afin de pouvoir utiliser la propriété $.support . (Il en est de même dans le doco de l'API pour $.browser .)

2voto

Emil Vikström Points 42251

1voto

Spidfire Points 1132

vous pouvez utiliser la variable de navigateur de javascript

 console.log(navigator)
 

mais si vous voulez vérifier la compatibilité avec une fonction de jQuery, vous pouvez utiliser le support var comme

 $.support.ajax
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X