2010-11-18 19 views
5

Tengo un sitio web y, como en la mayoría de los sitios web, se carga más rápido en Firefox.¿Detección de navegador confiable con javascript?

Quiero crear una forma de barra, que se muestra en la parte superior de mi sitio, cada vez que un usuario sin FF ingresa al sitio. Esta barra dirá algo así como "Instalar FF para un mejor rendimiento, etc., etc."

¿Cómo debo hacer esto? Detección del navegador, supongo, pero hay toneladas de códigos diferentes por ahí. ¿Algún código que todos ustedes saben que es más confiable y mejor de usar?

Btw, ¿alguien sabe si necesito permiso de Mozilla para tener una barra en mi sitio web?

Gracias

EDIT: FF NO ES el navegador más rápido, lo tengo!

+0

IQ ! Firefox representa a Lynx como un Ferrari a ...... – thomaspaulb

+2

... avión de combate supersónico. – Quentin

+3

... con una pantalla de radar basada en texto de 80x25. – thomaspaulb

Respuesta

10

(Omisión de todos los argumentos sobre si lo que quieres hacer es una buena o una mala cosa. Suponiendo que realmente como Firefox y quiere promoverlo.)

  1. Uso del objeto navigator a comprueba si el navegador es Firefox. navigator.appCodeName, navigator.appName, navigator.appVersion. Lo que quiere hacer no es una parte crítica de su sitio web, por lo que no necesita un método de detección a prueba de fallas. Si funciona para más del 95% de sus usuarios objetivo, el método es bueno.

  2. Dudo que necesite permiso para publicitar un producto gratis. Mozilla incluso encourages que lo haga.

1

No creo que sea una buena idea. ¿Qué hay de otros navegadores como Chrome o Safari? En este momento, Chrome es más rápido que Firefox (pruebas de Sunspider), por lo que su afirmación "se carga más rápido en Firefox" no es realmente correcto. Más rápido que qué? Si se refiere a IE, entonces ya hay soluciones en la web para alertar a los usuarios de no usar IE y cambiar a otra cosa. No deberías preferir solo un navegador.

+0

Depende de la página web, la mina se carga más rápido con FF. Y no es solo la velocidad que busco, FF hace el trabajo mejor que Chrome, Safari con el que no tengo mucha experiencia. –

+3

Su sitio web no es un copo de nieve único. A menos que sea una demostración tecnológica de las características del navegador (en cuyo caso la audiencia es lo suficientemente inteligente como para reconocer un título como "Demostración de la nueva propiedad de olor a moho de Firefox"), no cambiaré los navegadores solo porque uno (que me parece que es, en general, bastante lento) es supuestamente más rápido en renderizar tu sitio que mi navegador preferido. Es posible que sea mejor dedicar tiempo a tratar de mejorar el rendimiento, tal vez perfilando cualquier JS que tenga en otros navegadores para encontrar dónde están las partes lentas y mejorarlas. – Quentin

6

jQuery tiene browser detection.

de sí mismos, sin embargo argumentan que no debe seleccionar en el navegador, sino en lo que características son compatibles con el navegador El dev jQuery. Por lo tanto, recomiendan browser feature detection en su lugar. Tiene sentido.

+0

esto se eliminó en jQuery 1.9. –

2

creo que la detección del navegador no es la forma correcta de resolver algunos problemas. Si su código es lento en otro navegador, primero debe investigar el motivo, limpiar y optimizar su código, y si no lo resuelve, podría ofrecer una funcionalidad reducida para otro navegador.

Pero, por favor, evitar que sugiere usuario lo que debe instalar en su ordenador

+0

bien, no hay problema para downvote. Esto es lo que realmente pienso La detección del navegador es la última opción, al menos para mí. No me gusta esconder el polvo debajo de la alfombra –

4

No hay 100% fiable detección del navegador. El acceso al userAgent-string proporcionado por el navegador-objeto no es confiable, mientras que el usuario lo puede fingir. Acceder a algunas propiedades que solo existen en un navegador especial ahora, puede ser confiable en este momento, pero no en el futuro, porque nunca se sabe, si otro navegador aplicará esta propiedad a veces o la propiedad se eliminará del navegador en futuras versiones.

+2

Si el usuario falsifica el userAgent, está claro que no tiene intención de cambiar de navegador. Entonces no se necesita detección en este caso. Tenga en cuenta que esta detección solo es necesaria para promocionar. Firefox no es realmente necesario para ver el sitio. –

4

esto podría no responder a su pregunta, pero se pueden hacer comentarios condicionales en el código HTML de la siguiente manera:

http://www.quirksmode.org/css/condcom.html

Usted puede utilizar este código para detectar cualquier versión de IE.

A menos que sea contratado por la Fundación Mozilla, no veo por qué los usuarios con Chrome y Safari y navegadores similares deberían ser notificados con este mensaje. Hicieron una elección activa y eligieron su propio navegador, algo que no se puede decir sobre la mayoría de los usuarios de IE que podrían desconocer las alternativas. Principalmente, es Internet Explorer el problema.

Disculpe si esto fue un poco fuera de tema y si no fue de ninguna ayuda.

/final de diatriba moral;)

2

Ok por lo que obtener un -1, ya que no me gusta Firefox o porque no te di la solución en su mano para que usted pueda copiar y pegar? Así que aquí tienes la gente:

<!--[if IE]> 
Special instructions for IE 
<![endif]--> 

Y en jQuery

if ($.browser.msie) 
8

Usted puede estar interesado en esta página aquí en spreadfirefox.com: http://www.spreadfirefox.com/affiliates/utw. Contiene un conjunto de botones de Spread Firefox, pero lo que es más interesante es el código que viene con él. Se dará cuenta de que la imagen del botón cambiará realmente dependiendo del navegador se lo mire en:

http://sfx-images.mozilla.org/utw/3.6/FF36_36_120x240.png http://sfx-images.mozilla.org/utw/3.6/FF36_FF_120x240.png http://sfx-images.mozilla.org/utw/3.6/FF36_IE_120x240.png http://sfx-images.mozilla.org/utw/3.6/FF36_OTHER_120x240.png

Mirando el Javascript code, se puede ver que ya están haciendo la trabajar para usted:

/* ********************************************* 
This code came from http://www.quirksmode.org/js/detect.html 
In order for this to function properly, it must be updated regularly 
***********************************************/ 

¿por qué no basta con modificar el código que le han dado para trabajar con sus imágenes o código? O mejor aún, ¿usas uno de los ya preparados?

Cuestiones relacionadas