Saya perlu mendeteksi tidak hanya jenis browser tetapi juga versinya menggunakan jQuery. Kebanyakan saya perlu mencari tahu apakah itu IE 8 atau tidak.
Saya tidak yakin apakah saya melakukannya dengan benar.
Jika aku melakukan :
if (jQuery.browser.version >= 8.0) {
dosomething}
Saya tidak yakin ini akan berfungsi untuk versi 8.123.45.6 atau akankah itu?
Sunting: Perhatikan bahwa JQuery 2+ telah menghentikan dukungan untuk IE8 dan yang lebih lama, dan oleh karena itu tidak dapat lagi digunakan untuk mendeteksi IE8. Jika menggunakan versi JQuery saat ini, perlu menggunakan solusi Non-JQuery.
javascript
jquery
salmane
sumber
sumber
jquery.support.opacity
hanya melakukan apa yang saya inginkan. Terima kasih ...jQuery.browser
, tidak memerlukan perpustakaan tambahan seperti Modernizr, dan tidak memerlukan pengeditan HTML (sangat cocok untuk plugin dll) ...Jawaban:
Itu didokumentasikan dalam Dokumentasi API jQuery . Periksa Internet Explorer dengan
$.browser.msie
dan kemudian periksa versinya dengan$.browser.version
.UPDATE: $ .browser dihapus di jQuery 1.9
sumber
if(jQuery.browser.version.substring(0, 2) == "8.") { ... }
. Dengan begitu, ini akan bekerja dengan semua versi IE8.jQuery.browser
sudah tidak digunakan lagi di 1.3 dan dapat dipindahkan ke plugin di masa mendatang. Lihat dokumen jQuery.browserSaya pikir cara terbaik adalah ini:
Dari boilerplate HTML5:
di JS:
terutama karena
$.browser
telah dihapus dari jQuery 1.9+.sumber
lt-ie9
AOTie8
<html>
daripada<body>
?Ini harus bekerja untuk semua versi minor IE8
- perbarui
Harap diperhatikan bahwa $ .browser telah dihapus dari jQuery 1.9
sumber
Jangan lupa bahwa Anda juga dapat menggunakan HTML untuk mendeteksi IE8.
Memiliki itu sebelum semua skrip Anda akan membiarkan Anda hanya memeriksa variabel "ie" atau apa pun.
sumber
document.documentMode tidak ditentukan jika browser bukan IE8,
itu mengembalikan 8 untuk mode standar dan 7 untuk 'kompatibel dengan IE7'
Jika dijalankan sebagai IE7, ada banyak fitur css dan dom yang tidak akan didukung.
sumber
if ((document.documentMode || 100) < 9) { // IE8
0
saat halaman sedang dimuat - "coba untuk menentukan mode kompatibilitas dokumen di lain waktu" (yaitu setelah dokumen siap).Asumsi...
<body>
atau<html>
)... maka ini mungkin trik terbaik (berdasarkan non-jQuery, varian yang sedikit kurang fleksibel ). Ini membuat kemudian tes untuk kemudian menghapus komentar bersyarat yang sesuai.
(Komentar bersyarat diabaikan dalam 'mode standar' IE10 + - tetapi itu seharusnya baik-baik saja karena 'mode standar' IE10 + tidak memiliki mesin rendering yang gila!)
Jatuhkan fungsi ini:
Kemudian gunakan seperti ini:
Saya juga menyarankan hasil cache dari fungsi ini sehingga Anda tidak perlu mengulanginya. Misalnya, Anda bisa menggunakan string
(comparison||'')+' IE '+(version||'')
sebagai kunci untuk menyimpan dan memeriksa hasil tes ini di suatu objek di suatu tempat.sumber
catatan:
1) $ .browser tampaknya dijatuhkan di jQuery 1.9+ (seperti dicatat oleh Mandeep Jain). Hal ini dianjurkan untuk menggunakan .support gantinya.
2) $ .browser.version dapat mengembalikan "7" di IE> 7 saat browser berada dalam mode "kompatibilitas".
3) Mulai IE 10, komentar bersyarat tidak akan berfungsi lagi.
4) jQuery 2.0+ akan menghentikan dukungan untuk IE 6/7/8
5) document.documentMode tampaknya hanya ditentukan di browser Internet Explorer 8+. Nilai yang dikembalikan akan memberi tahu Anda dalam mode "kompatibilitas" apa yang dijalankan Internet Explorer. Masih bukan solusi yang baik.
Saya mencoba banyak opsi .support (), tetapi tampaknya ketika browser IE (9+) dalam mode kompatibilitas, itu hanya akan berperilaku seperti IE 7 ... :(
Sejauh ini saya hanya menemukan ini berfungsi (kind-a):
(jika documentMode tidak ditentukan dan htmlSerialize serta opacity tidak didukung, kemungkinan besar Anda melihat IE <8 ...)
sumber
Jika Anda mengutak-atik versi browser, hal itu sering kali tidak menghasilkan kebaikan. Anda tidak ingin menerapkannya sendiri. Tapi Anda bisa Modernizr dibuat oleh Paul Irish dan orang pintar lainnya. Ini akan mendeteksi apa yang sebenarnya bisa dilakukan browser dan memasukkan kelas yang sesuai di
<html>
elemen. Namun dengan Modernizr , Anda dapat menguji versi IE seperti ini:Serupa, Anda dapat menggunakan
.lt-ie8
, dan.lt-ie7
.sumber
Anda juga harus melihat jQuery.support . Deteksi fitur jauh lebih dapat diandalkan daripada deteksi browser untuk mengkodekan fungsionalitas Anda (kecuali Anda hanya mencoba mencatat versi browser).
sumber
Anda dapat dengan mudah mendeteksi tipe dan versi browser yang mana, menggunakan jquery ini
sumber
Berikut adalah plugin deteksi browser Jquery untuk mengidentifikasi deteksi browser / os.
Anda dapat menggunakan ini untuk tujuan gaya setelah memasukkan plugin.
sumber
Anda dapat menggunakan $ .browser untuk mendeteksi nama browser. nilai yang mungkin adalah:
atau dapatkan boolean flag: $ .browser.msie akan bernilai true jika browsernya MSIE.
Sedangkan untuk nomor versi, jika Anda hanya tertarik pada nomor rilis utama - Anda dapat menggunakan parseInt ($. browser.version, 10). tidak perlu mengurai sendiri string $ .browser.version.
Bagaimanapun, Properti $ .support tersedia untuk mendeteksi dukungan untuk fitur tertentu daripada mengandalkan $ .browser.
sumber