Saya memanggil fungsi seperti yang di bawah ini dengan mengklik divs dengan kelas tertentu.
Apakah ada cara saya dapat memeriksa ketika memulai fungsi jika pengguna menggunakan Internet Explorer dan batalkan / batalkan jika mereka menggunakan browser lain sehingga hanya berjalan untuk pengguna IE? Pengguna di sini semuanya menggunakan IE8 atau versi yang lebih tinggi, jadi saya tidak perlu membahas IE7 dan versi yang lebih rendah.
Jika saya bisa tahu browser mana yang mereka gunakan itu akan bagus tetapi tidak diperlukan.
Fungsi contoh:
$('.myClass').on('click', function(event)
{
// my function
});
javascript
jquery
internet-explorer
browser-detection
pengguna2571510
sumber
sumber
With modern web development, it's bad practice to support non-Chromium-based browsers (with Safari not considered to be Chromium-based at all)
. Maaf, tetapi kegilaan ini harus berakhir pada titik tertentu dan entah bagaimana ...Jawaban:
Gunakan metode JavaScript di bawah ini:
Anda dapat menemukan detail di situs dukungan Microsoft di bawah ini:
Cara menentukan versi browser dari skrip
Pembaruan: (dukungan IE 11)
sumber
if (msie > 0)
itu menyesatkan. Jika nilainya tidak ditemukan, fungsi indexOf () mengembalikan -1 bukan 0. Dengan demikianif (msie > -1)
akan lebih jelas.IE 11
: stackoverflow.com/a/21712356/114029/Edge\/|Trident\/|MSIE /.test(window.navigator.userAgent)
Saya tahu ini berfungsi pada 10 dan 11. Jika Anda dapat memverifikasi <IE9 dan Edge, edit jawaban.Beberapa tahun kemudian, dan browser Edge sekarang menggunakan Chromium sebagai mesin renderingnya.
Memeriksa IE 11 masih merupakan hal yang menyedihkan.
Berikut adalah pendekatan yang lebih mudah, karena versi IE kuno harus hilang.
Inilah jawaban lama saya (2014):
In Edge String Agen Pengguna telah berubah.
Penggunaan sampel:
String default IE 10:
String default IE 11:
String default Edge 12:
String default Edge 13 (thx @DrCord):
String default Edge 14:
String default Edge 15:
String default Edge 16:
String default Edge 17:
String default Edge 18 (Pratinjau orang dalam):
Tes di CodePen:
http://codepen.io/gapcode/pen/vEJNZN
sumber
Jika yang ingin Anda ketahui adalah apakah browser itu IE atau tidak, Anda bisa melakukan ini:
Pembaruan 1: Metode yang lebih baik
Saya merekomendasikan ini sekarang. Itu masih sangat mudah dibaca dan jauh lebih sedikit kode :)
Terima kasih kepada JohnnyFun dalam komentar untuk jawaban singkatnya :)
Pembaruan 2: Menguji IE dalam CSS
Pertama, jika Anda bisa, Anda harus menggunakan
@supports
pernyataan dan bukannya JS untuk memeriksa apakah browser mendukung fitur CSS tertentu.(Perhatikan bahwa IE tidak mendukung
@supports
sama sekali dan akan mengabaikan gaya apa pun yang ditempatkan di dalam@supports
pernyataan.)Jika masalah tidak dapat diselesaikan dengan
@supports
maka Anda dapat melakukan ini:(Catatan:
classList
relatif baru untuk JS dan saya pikir, dari browser IE, itu hanya bekerja di IE11. Mungkin juga IE10.)Jika Anda menggunakan SCSS (Sass) dalam proyek Anda, ini dapat disederhanakan untuk:
Pembaruan 3: Menambahkan Microsoft Edge (tidak disarankan)
Jika Anda juga ingin menambahkan Microsoft Edge ke dalam daftar, Anda dapat melakukan hal berikut. Namun saya tidak merekomendasikannya karena Edge adalah browser yang jauh lebih kompeten daripada IE.
sumber
ms_ie = !!ua.match(/MSIE|Trident/)
~
ada artinya?Ini mengembalikan
true
untuk semua versi Internet Explorer:The
userAgent
parameter opsional dan default ke agen pengguna browser.sumber
Ini adalah bagaimana tim Angular melakukan itu ( v 1.6.5 ):
Lalu ada beberapa baris kode yang tersebar di seluruh menggunakannya sebagai nomor seperti
dan
sumber
document.documentMode
didukung oleh IE8 +. Ini'undefined'
untuk Edge atau Chrome / FireFox .... Saya mengubah kode inivar IEver = window.document.documentMode || (window.attachEvent? 1 : 99);
sedemikian rupa sehingga mengembalikan versi IE yang tepat untuk IE8 +, 99 untuk browser non-IE (biasanya itu akan menjadi browser modern), dan 1 untuk IE5-7 lama. Ini ditulis seperti itu karena kita biasanya memerlukan pekerjaan khusus hanya untuk beberapa IE yang lebih tua. Jadi,if (IEver < 9) { ... }
berarti jika itu adalah IE lamaAnda dapat menggunakan objek navigator untuk mendeteksi pengguna-navigator, Anda tidak perlu jquery untuk itu
http://www.javascriptkit.com/javatutors/navigator.shtml
sumber
Menggunakan jawaban di atas; Boolean pengembalian sederhana & kental:
var isIE = /(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent);
sumber
Metode 01:
$ .browser sudah tidak digunakan lagi di jQuery versi 1.3 dan dihapus di 1.9
Metode 02:
Menggunakan Komentar Bersyarat
Metode 03:
Metode 04:
Gunakan JavaScript / Deteksi Manual
Tautan Referensi
sumber
.ie10
kelas adalah salah satu pilihan terbaik jika Anda melakukan beberapa perbaikan css untuk ie10 saja. Saat internet explorer 10 menambahkan".ie10"
kelas ke elemen HTML<html class="ie10">
, Anda dapat menggunakannya seperti.ie10 .myclass {//some css here}
Saya hanya ingin memeriksa apakah browser itu IE11 atau lebih tua, karena yah, mereka omong kosong.
sumber
sumber
Menggunakan modernizr
sumber
Atau versi yang sangat singkat ini, mengembalikan true jika browser adalah Internet Explorer:
sumber
Namun fungsi sederhana lainnya (belum dapat dibaca manusia) untuk mendeteksi apakah browser itu IE atau tidak (mengabaikan Edge, yang tidak buruk sama sekali):
sumber
Jika Anda tidak ingin menggunakan agen pengguna, Anda juga bisa melakukan ini untuk memeriksa apakah browsernya IE. Kode yang dikomentari sebenarnya berjalan di browser IE dan mengubah "false" menjadi "true".
sumber
Saya tahu ini adalah pertanyaan lama, tetapi kalau-kalau ada orang yang menemukannya lagi dan memiliki masalah dalam mendeteksi IE11, berikut adalah solusi yang berfungsi untuk semua versi IE saat ini.
sumber
Saya sudah menggunakan ini
sumber
Banyak jawaban di sini, dan saya ingin menambahkan masukan saya. IE 11 telah menjadi seperti keledai mengenai flexbox (lihat semua masalah dan inkonsistensi di sini ) yang saya benar-benar membutuhkan cara mudah untuk memeriksa apakah pengguna menggunakan browser IE (hingga dan termasuk 11) tetapi tidak termasuk Edge, karena Edge sebenarnya cukup bagus.
Berdasarkan jawaban yang diberikan di sini, saya menulis fungsi sederhana mengembalikan variabel boolean global yang kemudian dapat Anda gunakan di telepon. Sangat mudah untuk memeriksa IE.
Dengan cara ini Anda hanya perlu melakukan look up sekali, dan Anda menyimpan hasilnya dalam variabel, daripada harus mengambil hasilnya pada setiap pemanggilan fungsi. (Sejauh yang saya tahu Anda bahkan tidak perlu menunggu dokumen siap untuk mengeksekusi kode ini karena agen-pengguna tidak terkait dengan DOM.)
sumber
Coba ini jika Anda menggunakan versi jquery> = 1.9 ,
Jika menggunakan versi jQuery <1.9 ($ .browser dihapus di jQuery 1.9) gunakan kode berikut sebagai gantinya:
sumber
Solusi @ SpiderCode tidak bekerja dengan IE 11. Ini adalah solusi terbaik yang saya gunakan untuk selanjutnya dalam kode saya di mana saya perlu deteksi browser untuk fitur tertentu.
IE11 tidak lagi dilaporkan sebagai MSIE, menurut daftar perubahan ini, sengaja untuk menghindari kesalahan deteksi.
Apa yang dapat Anda lakukan jika Anda benar-benar ingin tahu itu adalah untuk mendeteksi Trident / string di agen pengguna jika navigator.appName mengembalikan Netscape, sesuatu seperti (yang belum diuji);
Terima kasih atas jawaban ini
sumber
Di bawah ini saya menemukan cara yang elegan untuk melakukan ini saat googling ---
sumber
Perbarui ke jawaban SpiderCode untuk memperbaiki masalah di mana string 'MSIE' mengembalikan -1 tetapi cocok dengan 'Trident'. Dulu mengembalikan NAN, tetapi sekarang mengembalikan 11 untuk versi IE.
sumber
Anda dapat mendeteksi semua Internet Explorer (Versi Terakhir Diuji 12).
Lihat di sini https://jsfiddle.net/v7npeLwe/
sumber
Anda akan melihat hasilnya di konsol, silakan gunakan chrome Inspect.
sumber
Saya telah menempatkan kode ini di fungsi siap dokumen dan hanya memicu di internet explorer. Diuji di Internet Explorer 11.
sumber
Ini hanya bekerja di bawah versi IE 11.
console.log("version number",ie_version);
sumber
Fungsi JavaScript untuk mendeteksi versi Internet Explorer atau Edge
sumber
Necromancing.
Agar tidak bergantung pada string agen pengguna, cukup periksa beberapa properti:
Juga, ini mendeteksi Chredge baru (Anaheim):
Dan ini mendeteksi kromium:
Dan Safari ini:
sumber
Coba lakukan seperti ini
sumber
Saya pikir ini akan membantu Anda di sini
sumber
Kamu bisa menggunakan
$.browser
untuk mendapatkan informasi nama, vendor dan versi.Lihat http://api.jquery.com/jQuery.browser/
sumber