Plus facile et la plus légère de Remplacement Pour la Détection du Navigateur jQuery 1.9?
J'ai eu plusieurs clients se plaignent hier que certains code cessé de travailler. Apparemment, il revient à des plugins en utilisant le désormais obsolète jQuery.browser
qui a cessé de travailler, hier, quand jQuery 1.9 a été libéré.
J'ai (rapidement) s'est penchée sur le 1.9 variation des docs et il semble comme ils veulent me le remplacer par un assez lourd bibliothèques juste pour que un fonction.
Est-il recommandé de légèreté plug-in ou d'un extrait de code pour restaurer cette fonctionnalité?
Pour ce que de ces sites, c'est très basique; je n'ai besoin le plus fondamental de détection de IE vs FF vs tout le monde.
Suggestions?
- Pour citer la cinq-année-vieux message du jQuery docs: "Nous déconseillons l'utilisation de cette propriété; s'il vous plaît essayez d'utiliser la fonctionnalité de détection de la place (voir jQuery.de soutien). jQuery.le navigateur peut être déplacé à un plugin dans une future version de jQuery." api.jquery.com/jQuery.browser VS. api.jquery.com/jQuery.support
- utilisation
>1.8
,<1.9
moindre jQuery. - Merci. Je comprends qu'il a été marqué par la dépréciation. J'ai plusieurs fiches qui dépendent de l' .offsetTop à la propriété-qui retourne une valeur différente pour différents navigateurs. J'ai trouvé que la simple vérification pour IE vs Mozilla vs Chrome était une simple solution de contournement. Si offsetTop était conforme je n'aurais pas besoin du tout.
Vous devez vous connecter pour publier un commentaire.
J'ai utiliser le code suivant répondu par Alexx Roche, mais je voulais détecter MSIE donc:
espère que cela aide!
if (navigator.userAgent.match(/msie|trident/i)) {;}
jQuery Migrate était créé pour permettre à des fins de compatibilité descendante lorsque vous mettez à jour votre code.
https://github.com/jquery/jquery-migrate
Comme un bonus, il enregistre obsolète fonctions que vous les utilisez. Je voudrais essayer pendant que vous résoudre les problèmes. Aussi, vous devez être un paramètre spécifique à la version de jQuery pour vos sites. Il est bon de mise à niveau, mais assurez-vous de tester ces mises à jour avant de les mettre en production. Si vous êtes en utilisant un CDN, vous pouvez toujours spécifier une version spécifique dans le nom de fichier.
Maintenant, vous n'avez pas besoin d'un plugin jQuery pour ce que vous demandez. Découvrez le
navigateur
de l'objet.navigator.userAgent
. Il devrait être assez facile de voir si la chaîne contient ce que vous cherchez. (Ne cherchez pas de correspondances exactes, comme évidemment les numéros de version et les plugins changement.)Mettez ce code dans votre site (comme le fichier js, ou après le code de jQuery...):
$.browser
en premier lieu. Et oui, la copie, de pâtes alimentaires doit respecter les termes de la licence.// hofix for IE11 detection var isIE11 = !!navigator.userAgent.match(/Trident\/7\./); if (isIE11) { browser.msie = "true"; delete browser.mozilla; }
J'ai utilisé le code suivant lorsque j'ai frappé à la même question:
Vous pourriez tout simplement pas de mise à jour jusqu'à ce que vous vous éloignez de amorties méthodes.
Vous ne devriez vraiment pas être compris jquery à partir d'un CDN, sans spécification d'un numéro de version de toute façon, d'une manière défaites le but de l'utilisation d'un CDN (pas de cacher).
Voici un lien vers la dernière version de jQuery qui ont soutenu $.navigateur:
http://code.jquery.com/jquery-1.8.3.min.js
il suffit de remplacer votre jquery.js src avec ce lien et votre code continuera à s'exécuter jusqu'à ce que vous êtes prêt à aller de l'avant et arrêter d'utiliser amortis fonctionnalités.
Remarque: Fancybox2 utilise encore $.le navigateur, qui est la plus commune que j'ai vu jusqu'à présent depuis la mise à jour.
Mise à jour: Slickgrid est toujours à l'aide de
$.browser
, pas de mise à jour du 02/11/2013-latest
versions génériques et de versions ne seront plus mis à jour, vous ne devriez pas utiliser plus.Je abstraites de la logique de jQuery.navigateur dans un plugin jquery.navigateur. Le plugin est publié sous la licence MIT.
J'ai également ajouté le support pour IE11, Webkit, Opera et Android de détection.
Essayer Conditionizr
Espère que cela Aide 🙂
Exact de la version d'IE peut être détectée par une vérification supplémentaire de l'existence de standard mondial les objets ajoutés dans certaines versions IE.
Ces tests éviter d'utiliser le userAgent qui est utilisé pour usurpation
http://jsfiddle.net/R3AAX/3/
Si tout ce que vous voulez, c'est votre 3ème partie plugins jQuery pour être en mesure d'utiliser jQuery.le navigateur.msie, voici un one-liner. Simplement l'inclure après jQuery.
C'est la chose la plus stupide possible de réparer, mais c'est tout ce dont j'avais besoin, et ça fonctionne, donc ici vous allez!
Ajouter à cette discussion. Je suis juste venu avec jquery $.plugin de navigateur qui, au lieu de "détection", tout simplement traite de l'agent de l'utilisateur dans un facile à utiliser l'objet. Plus loin la logique peut facilement être appliquée à plus de décomposer et d'analyser certains navigateurs et plates-formes.
J'ai eu des résultats très fiables sur useragents trouvé ici: UserAgentString.com. J'ai même inclus la détection de la version pour ie11 (près du fond).
Sur Internet Explorer 10, JSON.stringify sera de sortie à quelque chose comme ceci:
Court et Puissant.