data - jQuery.browser está en desuso, pero ¿cómo se usa.support?
jquery remove attribute (1)
En mi página web, tengo este CSS:
tr:hover {
background-color: #f0f;
}
Lo cual funciona muy bien en todos los navegadores excepto en el viejo IE. Sé que puedo simplemente escribir algo de jQuery para agregar y eliminar una clase sobre el mouse over / out, pero preferiría no handicap (aunque sea ligeramente) todos los otros navegadores compatibles :hover
correctamente, por lo que solo quiero aplicar este comportamiento JS para los navegadores que no son compatibles con la solución de CSS puro de forma nativa.
Por supuesto, todos sabemos que $.browser
está en desuso, y todos sabemos que el rastreo de navegador es algo malo, y cualquier otra pregunta en SO tiene una serie de respuestas como "no se supone que debes verificar el navegador , busca la función ", y eso está muy bien en el mágico país de las hadas donde viven estas personas, pero el resto de nosotros necesitamos que nuestros sitios funcionen y se vean bien en IE6 y otros navegadores.
$.support
parece a esto para IE6 y 7:
leadingWhitespace: false
tbody: false
objectAll: false
htmlSerialize: false
style: false
hrefNormalized: false
opacity: false
cssFloat: false
scriptEval: false
noCloneEvent: false
boxModel: true
¿Cómo se supone que use estas propiedades para determinar si tr:hover
funcionará?
Sí, sé que en este ejemplo, es bastante inocuo y probablemente podría salirse con la suya ya sea al no ofrecerle esa característica a los usuarios de IE o al simularla en todos los navegadores, pero ese no es el punto. ¿Cómo se supone que debes dejar de usar $.browser
cuando $.support
no está cerca de reemplazarlo?
Respuesta simple: en algunas circunstancias no puede, esta es una de esas circunstancias en las que podría argumentar que debe usar los medios necesarios para realizar el trabajo. Muchos plugins populares (datapickers y scripts modales) necesitan hacer esto (por ejemplo iframe shim) o la secuencia de comandos no funcionaría correctamente para un navegador específico (aunque antiguo).
Sin embargo, en lugar de husmear el userAgent como lo hace $ .browser, me molestaría detectar IE6 o usar CC.
<!--[if IE 6]><script src="/js/ie6.js"></script><![endif]-->
También puede alimentar un archivo IE js general y luego ramificarlo dentro de él según la versión.