¿Cuál es el reemplazo de $ .browser?

Las etiquetas del documento jQuery $.browser como obsoleto. Entonces, ¿cuál es el reemplazo?

preguntado el 10 de marzo de 12 a las 10:03

No es realmente un jQuery método - pero trucos css podría serle útil. -

Debes evitar agregar más preguntas a tu publicación. Ya ha recibido numerosas respuestas a su pregunta original. -

Gracias, abriré una nueva pregunta:

6 Respuestas

Basado en Complemento de migración de jQuery , Encontré esto.

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;
}

Respondido el 22 de Septiembre de 14 a las 16:09

Gracias. Algunas características resultan difíciles de detectar. (como soporte para varios valores de propiedades css) - Gus

Si bien la respuesta principal es correcta, si está trabajando en un sitio que tiene un código heredado que depende de $.browser, esta respuesta es el camino a seguir, desafortunadamente, hasta que se pueda eliminar el código anterior. - desgarrado

Gracias por responder la pregunta. - ryan mineral

Sí, esto definitivamente funciona como un parche para complementos antiguos. (y responde la pregunta) - Miro

Esto es útil en una forma en que los documentos de jquery citados anteriormente no lo son. - Davidjmcclelland

Si realmente necesitas el viejo $ .browser

Según la documentos, esta función quedó obsoleta en 1.3, y totalmente eliminado en 1.9, aunque todavía está disponible en el complemento oficial de jQuery Migrate.

Si quieres hacerlo bien

Dependiendo de detección de navegador is no es Buena idea. La detección de características es el camino a seguir (Modernizr es una gran herramienta para eso). jQuery tenía un $.support() para proporcionar alguna detección de características, pero ahora también está obsoleto. También sugieren usar Modernizer.

Si realmente necesita la detección del navegador

Corregir las peculiaridades del navegador no es un caso de uso válido para la detección del navegador, pero existen otros casos de uso. Utilice cualquier herramienta de detección de navegador Javascript (como Bowser), ya que esta funcionalidad no depende en absoluto de jQuery.

Respondido el 20 de junio de 20 a las 10:06

Modernizr es una gran herramienta para la detección de funciones CSS3 / HTML5. - Marcelo Masón

Estás equivocado @ bažmegakapa, hay errores en el navegador, como window.onload event doesn't fire in chrome, por lo que debemos unirlos con la detección del navegador. - Lajos Mészaros

Es cierto, @ bažmegakapa, solo estaba diciendo que no digas nunca en la programación. stackoverflow.com/questions/7493293/… - Lajos Mészaros

Estoy creando una aplicación para informar errores, que recopila datos sobre el navegador / dispositivo del usuario. Entonces es completamente razonable querer esta funcionalidad. La detección de dispositivos no es mala, solo es cuestión de por qué la estás usando. Gracias @takien por la respuesta rápida. - ryan mineral

La gente de @kapa todavía está atascada actualizando el código heredado completamente de $ .browser y llegando a esta pregunta años después. Su respuesta proporciona cierta información disponible en los documentos, no una forma de resolver el problema real cuando su base de código está congelada en ámbar: Davidjmcclelland

No hay reemplazo directo. Debería utilizar la detección de funciones en lugar de la detección del navegador (¿tiene una buena razón para necesitar conocer el navegador?), Para que pueda utilizar la $.support intelectual. (Dice lo mismo en el documento API para $.browser.)

respondido 10 mar '12, 10:03

Jquery advierte contra el uso de $ .support: "Una colección de propiedades que representan la presencia de diferentes características o errores del navegador. Destinado al uso interno de jQuery; las propiedades específicas pueden eliminarse cuando ya no sean necesarias internamente para mejorar el rendimiento de inicio de la página. Para su propias necesidades de detección de características del proyecto, recomendamos encarecidamente el uso de una biblioteca externa como Modernizr en lugar de depender de las propiedades en jQuery.support ". - Chris Middleton

respondido 10 mar '12, 10:03

puedes usar la variable del navegador desde javascript

console.log(navigator)

pero si desea verificar la compatibilidad con una función de jquery, puede usar la var de soporte como

$.support.ajax

respondido 10 mar '12, 10:03

El jquery-browser-plugin es una buena gota en reemplazo

Respondido el 13 de diciembre de 13 a las 15:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.