Si realmente necesita saber lo que navegador que están usando, que en su mayoría tienen que mirar a la cadena userAgent
(aunque a veces se puede inferir que el navegador mediante la búsqueda de un par de características oscuras). Solo tenga en cuenta que algunos navegadores permiten al usuario cambiar eso y mentirle. :-)
Pero detectar el navegador está pasado de moda, por buenas razones. En cambio, como dices, quieres detectar las funciones que estás buscando. Esto es más confiable y menos trabajo. El hecho de que IE no sea compatible con addEventListener
, por ejemplo, no significa que nunca lo hará (y de hecho lo hace IE9). Entonces, usted detecta la característica en su lugar, lo que a futuro prueba el código.
Aquí hay un ejemplo concreto: supongamos que desea saber (como lo hice para mi place5 jQuery plug-in) si un navegador es compatible con el placeholder
attribute. Usted podría usar la detección del navegador y mantener una lista de los navegadores en los cuales las versiones tienen o no soporte, lo cual es complicado y es algo a lo que tiene que seguir recurriendo, etc., etc., o puede hacer esto:
if ("placeholder" in document.createElement("input")) {
// The browser supports the attribute
}
else {
// It doesn't
}
... y listo.
Hay un gran conjunto de pruebas de características en this page mantenidas por kangax. También hay una biblioteca llamada Modernizr que ofrece detección de funciones, consultas de medios y más para usted. Si usa jQuery, tiene una función de detección incorporada a través del jQuery.support
. Hay una agradable discusión sobre varios aspectos de detección de funciones, consultas de medios, detección de factor de forma (¿tableta, teléfono o PC?) En this article.
Para detectar funciones, use http://www.modernizr.com/ – Idered