jQuery.browser ist veraltet, aber wie verwenden Sie .support?

8

Auf meiner Webseite habe ich dieses CSS:

%Vor%

Was in allen Browsern gut funktioniert, bis auf den guten alten IE. Ich weiß, dass ich einfach jQuery schreiben kann, um eine Klasse hinzuzufügen und zu entfernen, aber ich würde es vorziehen, alle anderen Browser, die :hover richtig unterstützen, nicht (wenn auch nur geringfügig) zu behindern - also möchte ich wenden Sie dieses JS-Verhalten nur für die Browser an, die die reine CSS-Lösung nativ unterstützen.

Natürlich wissen wir alle, dass $.browser veraltet ist, und wir alle wissen, dass Browser-Sniffing eine schlechte Sache ist, und jede andere Frage zu SO hat eine Reihe von Antworten in der Art von "Du sollst nicht schau nach dem Browser , schau nach dem Feature ", und das ist alles gut und schön in dem magischen Feenland, in dem diese Leute leben, aber der Rest von uns muss uns bekommen Websites arbeiten und sehen über IE6 und andere Browser ok.

$.support sieht für IE6 & amp; 7:

%Vor%

Wie in aller Welt soll ich diese Eigenschaften verwenden, um festzustellen, ob tr:hover funktioniert?

Ja, ich weiß, dass es in diesem Beispiel ziemlich harmlos ist und ich wahrscheinlich damit davonkommen könnte, IE-Benutzern diese Funktion nicht zu geben oder sie über alle Browser hinweg zu simulieren, aber das ist nicht der Punkt. Wie soll man aufhören, $.browser zu verwenden, wenn $.support nicht nahe genug ist, um es zu ersetzen?

    
nickf 05.10.2009, 23:51
quelle

1 Antwort

5

Einfache Antwort - unter bestimmten Umständen können Sie nicht, dies ist einer dieser Umstände, wo ich argumentieren würde, dass Sie alle notwendigen Mittel verwenden sollten, um die Arbeit zu erledigen. Viele populäre Plugins (Datepicker und modale Scripts) brauchen dazu (zB iframe shim) oder das Script würde für einen bestimmten (wenn auch alten) Browser nicht richtig funktionieren.

Aber anstatt den UserAgent zu schnüffeln, wie es $ .browser tut, würde ich Objekt für IE6 erkennen oder CCs verwenden.

%Vor%

Sie könnten auch eine allgemeine IE-js-Datei füttern und dann basierend auf der Version darin verzweigen.

    
meder omuraliev 05.10.2009 23:53
quelle

Tags und Links