Saya tahu IE 11 memiliki string agen pengguna yang berbeda dari semua IE lainnya
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Saya telah mencoba mendeteksi IE 11 dengan jawaban yang ditentukan untuk pertanyaan ini '
Itu !!navigator.userAgent.match(/Trident\/7\./)
Tapi saya mendapatkan kesalahan
Object not found and needs to be re-evaluated.
Kemudian saya membuka konsol pengembang di IE11 dan mencoba mengakses beberapa objek javascript yang telah ditentukan, saya masih mendapatkan kesalahan yang sama.
saya telah mencoba
navigator.userAgent
window.navigator
console.log('test');
Ada yang punya ide tentang itu?
javascript
internet-explorer
internet-explorer-11
Miqdad Ali
sumber
sumber
Object not found and needs to be re-evaluated.
Jawaban:
Edit 18 Nov 2016
Kode ini juga berfungsi ( bagi mereka yang lebih memilih solusi lain, tanpa menggunakan ActiveX )
Jawaban Asli
Untuk memeriksa Ie11, Anda dapat menggunakan ini: (diuji)
(atau jalankan ini )
!(window.ActiveXObject) && "ActiveXObject" in window
Saya memiliki semua VMS IE:
Perhatikan: ini tidak akan berfungsi untuk IE11:
seperti yang Anda lihat di sini, ini mengembalikan nilai true:
Jadi apa yang bisa kita lakukan :
Rupanya, mereka menambahkan ruang bit mesin:
ie11:
ie12:
jadi kita bisa melakukan:
ini akan mengembalikan true hanya untuk ie11.
sumber
x64
mengembalikan Chrome dan Edgewindow.MSInputMethodContext
.Untuk mendeteksi MSIE (dari versi 6 hingga 11) dengan cepat:
sumber
indexOf()
menjadi> -1
?Saya menggunakan fungsi berikut untuk mendeteksi IE versi 9, 10 dan 11:
sumber
Semua jawaban di atas mengabaikan fakta bahwa Anda menyebutkan bahwa Anda tidak memiliki jendela atau navigator :-)
dan di situlah dikatakan
dan navigator, window, console, tidak satupun dari mereka ada dan perlu dievaluasi ulang. Aku pernah meniru itu. cukup tutup dan buka konsol beberapa kali.
sumber
Sebuah cukup aman & ringkas cara untuk mendeteksi IE 11 hanya adalah
if(window.msCrypto) { /* I'm IE11 for sure */ }
atau sesuatu seperti ini
var IE11= !!window.msCrypto;
msCrypto
adalah versi objek yang diawaliwindow.crypto
dan hanya diimplementasikan di IE 11.https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto
sumber
/x64|x32/ig.test(window.navigator.userAgent)
berlaku untuk Firefox!Dan bagaimana saya menerapkan ini
sumber
&& "ActiveXObject" in window
. Ketiga: apa trik dengan negasi ganda!!
?Oke coba ini, sederhana dan untuk IE11 dan IE versi di bawah 11
navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1
untuk versi IE 11navigator.userAgent.toUpperCase().indexOf("MSIE") != -1
untuk versi IE di bawah 11sumber
Tautan ini sangat membantu . Ini berisi kode javascript untuk mendeteksi semua versi IE hingga IE11. Saya menguji skrip dengan emulator IE11. Untuk menemukan emulator IE11, klik kanan di browser web, klik "Inspect element". Di kiri bawah halaman, scroll ke bawah bilah navigasi dan klik ikon desktop. Kotak dropdown "User Agent String" berisi opsi untuk meniru IE6-11.
Berhasil. Saya hanya menggunakannya beberapa menit sebelum menulis jawaban ini. Tidak dapat memposting snapshot - reputasi tidak cukup.
Ini kodenya - ikuti tautan untuk melihatnya lagi:
sumber
Menggunakan RegExp ini tampaknya berfungsi untuk IE 10 dan IE 11:
Saya tidak memiliki IE yang lebih tua dari IE 10 untuk menguji ini.
sumber
Gunakan Navigator: -
Ini
navigator
adalah objek yang berisi semua informasi tentang browser mesin klien.navigator.appName
mengembalikan nama browser mesin klien.sumber
Saya menemukan IE11 memberikan lebih dari satu string agen pengguna di lingkungan yang berbeda.
Daripada mengandalkan
MSIE
, dan pendekatan lainnya, Lebih baik mengandalkanTrident
versiSemoga ini membantu :)
sumber