Rumah >hujung hadapan web >tutorial js >JavaScript menentukan versi IE model_Pengetahuan asas
Yang berikut akan menerangkannya kepada anda melalui kod Sila lihat di bawah untuk butiran:
Perbezaan antara pelayar IE dan pelayar bukan IE ialah pelayar IE menyokong ActiveXObject, tetapi pelayar bukan IE tidak menyokong ActiveXObject. Sebelum pelayar IE11 muncul, ini adalah cara kami sering menilai IE dan bukan IE
Tetapi dalam IE11, penghakiman di atas mengembalikan palsu. Saya menguji kod berikut dalam IE11:
Tapak web rasmi di Microsoft menerangkan perbezaan dalam ActiveXObject IE11.
Pelayar IE6 Hakim
Bermula dari IE7, IE menyokong objek XMLHttpRequest, tetapi IE6 tidak menyokongnya. Berdasarkan ciri ini dan fungsi sebelumnya isIe() untuk menilai IE, kita tahu cara menilai IE6. Kaedah penghakiman adalah seperti berikut:
Oleh kerana mod dokumen disokong bermula dari IE8, ia menyokong document.documentMode. IE7 tidak menyokongnya, tetapi IE7 menyokong objek XMLHttpRequest. Kaedah penghakiman adalah seperti berikut:
Hakim pelayar IE8
Bermula dari IE9, Microsoft perlahan-lahan menghampiri standard Kami memanggil IE678 sebagai penyemak imbas bukan standard, dan IE9 serta penyemak imbas lain seperti chrome dan firefox dipanggil penyemak imbas standard. Salah satu perbezaan antara keduanya ialah amaran(-[1,]);//Dalam IE678, NaN dicetak, tetapi dalam pelayar standard, -1
Kemudian kita boleh menilai ia adalah pelayar IE8 berdasarkan perbezaan di atas. Begini caranya:
function isIe8(){ // alert(!-[1,])//->IE678返回NaN 所以!NaN为true 标准浏览器返回-1 所以!-1为false return isIe() &&!-[1,]&&document.documentMode; }
Hakim pelayar IE9, IE10, IE11
Pelayar menyokong objek terbina dalam JSON daripada IE8 dan menyokong mod ketat js bermula dari IE10. Di bawah IE9, alert(!-[1,]) mengembalikan false. Berdasarkan perbezaan ini, kita boleh membezakan pelayar IE9, IE10 dan IE11.
Hakim pelayar lain
//检测函数 var check = function(r) { return r.test(navigator.userAgent.toLowerCase()); }; var statics = { /** * 是否为webkit内核的浏览器 */ isWebkit : function() { return check(/webkit/); }, /** * 是否为火狐浏览器 */ isFirefox : function() { return check(/firefox/); }, /** * 是否为谷歌浏览器 */ isChrome : function() { return !statics.isOpera() && check(/chrome/); }, /** * 是否为Opera浏览器 */ isOpera : function() { return check(/opr/); }, /** * 检测是否为Safari浏览器 */ isSafari : function() { // google chrome浏览器中也包含了safari return !statics.isChrome() && !statics.isOpera() && check(/safari/) } };
Di atas adalah pengenalan keseluruhan artikel ini, saya harap ia dapat membantu semua orang.