2010-11-18 7 views
5

J'ai un site Web, et bien sûr, comme la plupart des sites Web, il se charge plus rapidement dans Firefox.Détection de navigateur fiable avec javascript?

Je veux créer une sorte de barre, qui s'affiche en haut de mon site, chaque fois qu'un utilisateur sans FF entre dans le site. Cette barre dira quelque chose comme "Installer FF pour une meilleure performance etc etc ..."

Comment dois-je faire? La détection du navigateur Je suppose, mais il y a des tonnes de codes différents là-bas. Tout code que vous connaissez tous est plus fiable et meilleur à utiliser? Btw, est-ce que quelqu'un sait si j'ai besoin de la permission de Mozilla pour avoir une telle barre sur mon site Web?

Merci

EDIT: FF EST PAS LE PLUS RAPIDE NAVIGATEUR, j'AI OBTENU!

+0

QI interlude ! Firefox se lève à Lynx comme une Ferrari à un ... – thomaspaulb

+2

... chasseur supersonique. – Quentin

+3

... avec un écran radar texte 80x25. – thomaspaulb

Répondre

10

(sauter tous les arguments pour savoir si ce que vous voulez faire est une bonne ou une mauvaise chose. En supposant que vous avez vraiment comme Firefox et que vous voulez en faire la promotion.)

  1. Utilisez l'objet navigator à Vérifiez si le navigateur est Firefox. navigator.appCodeName, navigator.appName, navigator.appVersion. Ce que vous voulez faire n'est pas une partie critique de votre site Web, vous n'avez donc pas besoin d'une méthode de détection à sécurité intégrée. Si cela fonctionne pour plus de 95% de vos utilisateurs ciblés que la méthode est bonne.

  2. Je doute que vous ayez besoin d'une autorisation pour faire de la publicité pour un produit gratuit. Mozilla même encourages vous de le faire.

1

Je ne pense pas que ce soit une si bonne idée. Qu'en est-il des autres navigateurs comme Chrome ou Safari? En ce moment, Chrome est plus rapide que Firefox (tests Sunspider), donc votre affirmation "il se charge plus vite dans Firefox" n'est pas vraiment correcte. Plus vite que quoi? Si vous voulez dire IE, il existe déjà des solutions sur le Web pour avertir les utilisateurs de ne pas utiliser IE et passer à autre chose. Vous ne devriez pas privilégier un seul navigateur.

+0

Selon la page Web, le chargement se fait plus rapidement avec FF. Et ce n'est pas seulement la vitesse que je suis après, FF fait le travail mieux que Chrome, Safari je ne suis pas si expérimenté avec. –

+3

Votre site web n'est pas un flocon de neige unique. À moins qu'il ne s'agisse d'une démonstration technologique des fonctionnalités du navigateur (dans ce cas, le public est assez intelligent pour reconnaître un titre comme «Démonstration de la nouvelle propriété -moz-smell de Firefox»), je ne changerai pas de navigateur. ce que je trouve être, en général, plutôt lent) est supposément plus rapide à rendre votre site que mon navigateur préféré. Il est peut-être préférable de consacrer du temps à essayer d'améliorer les performances, peut-être en profilant tout JS que vous avez dans d'autres navigateurs pour trouver où se trouvent les parties lentes et les améliorer. – Quentin

6

jQuery a browser detection. Les développeurs de jQuery affirment eux-mêmes que vous ne devriez pas sélectionner sur le navigateur, mais sur quelles fonctionnalités sont supportées par le navigateur. Ainsi, ils recommandent browser feature detection à la place. Logique.

+0

cela a été supprimé dans jQuery 1.9. –

2

Je pense que la détection du navigateur n'est pas la bonne façon de résoudre certains problèmes. Si votre code est lent sur un autre navigateur, vous devriez d'abord examiner la raison, nettoyer et optimiser votre code, puis si vous ne résolvez pas, vous pouvez éventuellement fournir une fonctionnalité réduite pour un autre navigateur.

Mais s'il vous plaît, ne pas laisser croire utilisateur ce qu'il doit installer dans son ordinateur

+0

ok, pas de problème pour downvote. C'est ce que je pense vraiment. La détection du navigateur est la dernière option, au moins pour moi. Je n'aime pas cacher la poussière sous le tapis –

4

Il n'y a pas de détection de navigateur fiable à 100%. L'accès à la chaîne userAgent fournie par l'objet de navigation n'est pas fiable alors qu'il peut être truqué par l'utilisateur. Accéder à certaines propriétés qui existent seulement dans un navigateur spécial, peut être fiable maintenant, mais pas dans le futur, car on ne sait jamais, si un autre navigateur va appliquer cette propriété parfois ou la propriété sera supprimée du navigateur dans les futures versions.

+2

Si l'utilisateur simule l'userAgent, il est clair qu'il n'a aucune intention de changer de navigateur. Donc, aucune détection n'est nécessaire dans ce cas. Notez que cette détection est nécessaire uniquement pour la promotion. Firefox n'est pas réellement nécessaire pour voir le site. –

4

Cela pourrait ne pas répondre à votre question, mais vous pouvez faire des commentaires conditionnels dans votre code HTML comme ceci:

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

Vous pouvez utiliser ce code pour détecter toute version IE.

À moins que vous ne soyez embauché par la fondation Mozilla, je ne vois pas pourquoi les utilisateurs de Chrome et Safari et des navigateurs similaires devraient être informés avec ce message. Ils ont fait un choix actif et ont choisi leur propre navigateur, quelque chose que vous ne pouvez pas dire à propos de la plupart des utilisateurs d'IE qui pourraient ne pas être au courant des alternatives. Principalement, c'est Internet Explorer qui est le problème.

Désolé si c'était légèrement hors-sujet et si ce n'était pas utile du tout.

/fin de diatribe morale)

2

Ok donc je reçois -1 parce que je n'aime Firefox ou parce que je ne vous donne pas la solution dans la main pour vous de copier et coller? Eh bien là, vous allez les gens:

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

Et dans jQuery

if ($.browser.msie) 
8

Vous pouvez être intéressé par cette page ici sur spreadfirefox.com: http://www.spreadfirefox.com/affiliates/utw. Il contient un ensemble de boutons Spread Firefox, mais ce qui est plus intéressant, c'est le code qui l'accompagne. Vous remarquerez que l'image du bouton changera en fait en fonction du navigateur que vous voir sur:

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

En regardant le Javascript code, vous pouvez voir qu'ils font déjà la travailler pour vous:

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

Alors pourquoi ne pas simplement modifier le code qu'ils ont donné pour travailler avec vos images ou votre code? Ou mieux encore, utilisez un de ceux qui sont déjà prêts?

Questions connexes