2010-12-16 20 views
13

Estoy tratando de dirigir IE7 con una instrucción if en una función jQuery. Mi código para este bit específico es:Target IE7 con jQuery

if($.browser.msie && $.browser.version.substring(0) == "7") { 
    //Do something 
} 

¿Es esto correcto?

+4

¿Has probado? – Domenic

+0

¿Está buscando la forma "correcta" de hacer algo? Si no, simplemente prueba tu código y ve si funciona? – gideon

+0

Creo que 'parseInt ($. Browser.version) == 7' sería más bonito. – karim79

Respuesta

37

Probar:

if($.browser.msie && parseInt($.browser.version, 10) == 7) { 
    //Do something 
} 

Y como comentarios @ Andrew Whitaker, en vez de apuntar a un navegador específico, tenga en cuenta la detección de características en su lugar.

+0

Estoy de acuerdo con esa afirmación. Incluso el jquery apis dice lo siguiente: "Recomendamos no usar esta propiedad, intente utilizar la detección de características en su lugar". (http://api.jquery.com/jQuery.browser/) – Tjirp

+4

@Tjirp, no creo que haya una manera de detectar la 'característica' de "IE7 dibuja barras de desplazamiento dentro de la ventana de contenido al desbordamiento, IE8 los dibuja afuera ". – CaffGeek

+0

Buena secuencia de comandos, upvote. Sin embargo, ¿y si quisiera apuntar a IE7 e IE8? Probé con 'if ($. Browser.msie && parseInt ($. Browser.version, 10) == 7,8)' y funciona. Sin embargo, mi JSLint me dice que hay un error. No soy un gurú de JavaScript, así que no entiendo qué significa el error. Mi idea es DYR, así que no tengo que repetir la misma función para dos navegadores diferentes. ¿Alguna idea de cómo lograr esto? Gracias. –