Muszę wykryć nie tylko typ przeglądarki, ale także jej wersję za pomocą jQuery. Przede wszystkim muszę się dowiedzieć, czy jest to IE 8, czy nie.
Nie jestem pewien, czy robię to poprawnie.
Jeśli zrobię :
if (jQuery.browser.version >= 8.0) {
dosomething}
Nie jestem pewien, czy będzie działać w wersji 8.123.45.6, czy też będzie działać?
Edycja: Zwróć uwagę, że JQuery 2+ zrezygnowało ze wsparcia dla IE8 i starszych i dlatego nie można go już używać do wykrywania IE8. W przypadku korzystania z aktualnej wersji JQuery konieczne jest użycie rozwiązania innego niż JQuery.
javascript
jquery
salmane
źródło
źródło
jquery.support.opacity
właśnie zrobił to, co chciałem. Dzięki ...jQuery.browser
, nie wymaga dodatkowej biblioteki, takiej jak Modernizr, i nie wymaga edycji HTML (więc nadaje się do wtyczek itp.) ...Odpowiedzi:
Jest to udokumentowane w dokumentacji jQuery API . Sprawdź, czy Internet Explorer jest dostępny za pomocą,
$.browser.msie
a następnie sprawdź jego wersję za pomocą$.browser.version
.AKTUALIZACJA: $ .browser usunięto w jQuery 1.9
źródło
if(jQuery.browser.version.substring(0, 2) == "8.") { ... }
. W ten sposób będzie działać ze wszystkimi wersjami IE8.jQuery.browser
został wycofany w wersji 1.3 i może w przyszłości zostać przeniesiony do wtyczki. Zobacz dokumentację jQuery.browserMyślę, że najlepszym sposobem byłoby to:
Z szablonu HTML5:
w JS:
zwłaszcza, że
$.browser
został usunięty z jQuery 1.9+.źródło
lt-ie9
AOTie8
<html>
zamiast<body>
?Powinno to działać dla wszystkich mniejszych wersji IE8
-- aktualizacja
Należy pamiętać, że $ .browser zostało usunięte z jQuery 1.9
źródło
Nie zapominaj, że możesz również użyć HTML do wykrywania IE8.
Mając to przed wszystkimi skryptami, po prostu sprawdzisz zmienną „ie” lub cokolwiek innego.
źródło
document.documentMode jest niezdefiniowana, jeśli przeglądarka nie jest IE8,
zwraca 8 dla trybu standardowego i 7 dla „kompatybilnego z IE7”
Jeśli działa jako IE7, istnieje wiele funkcji CSS i DOM, które nie będą obsługiwane.
źródło
if ((document.documentMode || 100) < 9) { // IE8
0
podczas ładowania strony - „spróbuj określić tryb zgodności dokumentu w późniejszym czasie” (tj. Po przygotowaniu dokumentu).Zarozumiały...
<body>
lub<html>
)... to jest prawdopodobnie najlepsza sztuczka (oparta na tym innym wariancie niż jQuery, nieco mniej elastycznym ). Tworzy następnie testy, a następnie usuwa odpowiedni komentarz warunkowy.
(Komentarze warunkowe są ignorowane w `` trybie standardów '' IE10 + - ale powinno to wystarczyć, ponieważ IE10 + `` tryb standardów '' nie ma szalonego silnika renderującego!)
Upuść tę funkcję:
Następnie użyj tego w ten sposób:
Sugerowałbym również buforowanie wyników tej funkcji, abyś nie musiał jej powtarzać. Na przykład, możesz użyć łańcucha
(comparison||'')+' IE '+(version||'')
jako klucza do przechowywania i sprawdzania wyniku tego testu w jakimś obiekcie.źródło
Uwaga:
1) Wydaje się, że $ .browser został usunięty w jQuery 1.9+ (jak zauważył Mandeep Jain). Jest zalecane , aby użyć Wspomóż zamiast.
2) $ .browser.version może zwrócić „7” w IE> 7, gdy przeglądarka jest w trybie „zgodności”.
3) Od wersji IE 10 komentarze warunkowe nie będą już działać.
4) jQuery 2.0+ porzuci wsparcie dla IE 6/7/8
5) document.documentMode wydaje się być zdefiniowana tylko w przeglądarkach Internet Explorer 8+. Zwrócona wartość informuje, w jakim trybie „zgodności” działa Internet Explorer. Jednak nadal nie jest to dobre rozwiązanie.
Wypróbowałem wiele opcji .support (), ale wydaje się, że gdy przeglądarka IE (9+) jest w trybie zgodności, po prostu zachowuje się jak IE 7 ... :(
Do tej pory tylko to działało (kind-a):
(jeśli documentMode nie jest zdefiniowana, a htmlSerialize i opacity nie są obsługiwane, najprawdopodobniej patrzysz na IE <8 ...)
źródło
Jeśli bawisz się wersjami przeglądarek, często nie prowadzi to do niczego dobrego. Nie chcesz tego wdrażać samodzielnie. Ale możesz Modernizr wykonany przez Paula Irisha i innych mądrych ludzi. Wykryje, co przeglądarka faktycznie może zrobić i umieści odpowiednie klasy w
<html>
elemencie. Jednak z Modernizrem możesz przetestować wersję IE w następujący sposób:Podobnie możesz użyć
.lt-ie8
i.lt-ie7
.źródło
Powinieneś także spojrzeć na jQuery.support . Wykrywanie funkcji jest o wiele bardziej niezawodne niż wykrywanie przeglądarki do kodowania funkcji (chyba że próbujesz tylko rejestrować wersje przeglądarki).
źródło
Możesz łatwo wykryć typ i wersję przeglądarki za pomocą tego jquery
źródło
Oto wtyczka do wykrywania przeglądarki Jquery, która identyfikuje wykrywanie przeglądarki / systemu operacyjnego.
Możesz użyć tego do stylizacji po dołączeniu wtyczki.
źródło
Możesz użyć $ .browser do wykrycia nazwy przeglądarki. możliwe wartości to:
lub uzyskaj flagę logiczną: $ .browser.msie będzie prawdziwe, jeśli przeglądarka to MSIE.
jeśli chodzi o numer wersji, jeśli interesuje Cię tylko główny numer wydania - możesz użyć parseInt ($. browser.version, 10). nie ma potrzeby samodzielnego analizowania ciągu $ .browser.version.
W każdym razie właściwość $ .support jest dostępna do wykrywania wsparcia dla określonych funkcji, zamiast polegać na $ .browser.
źródło