Rumah >hujung hadapan web >tutorial js >JavaScript menentukan versi IE model_Pengetahuan asas

JavaScript menentukan versi IE model_Pengetahuan asas

WBOY
WBOYasal
2016-05-16 15:48:551043semak imbas

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

Salin kod Kod adalah seperti berikut:

fungsi ialah(){
Tetingkap kembali.ActiveXObject ? true : false;
}

Tetapi dalam IE11, penghakiman di atas mengembalikan palsu. Saya menguji kod berikut dalam IE11:

Salin kod Kod adalah seperti berikut:

alert(window.ActiveXObject);
alert(typeof window.ActiveXObject);

kenapa ni? Jelas sekali ActiveXObject wujud, tetapi hasil typeof memang tidak ditentukan. Sesiapa yang tahu hasilnya boleh beritahu saya kenapa? Untuk Shenma?

Tapak web rasmi di Microsoft menerangkan perbezaan dalam ActiveXObject IE11.

Salin kod Kod adalah seperti berikut:

alert("ActiveXObject" dalam tetingkap)//Mengembalikan benar di bawah ie11

Berikut ialah kaedah langsung untuk menentukan sama ada pelayar IE dan bukan IE serasi dengan IE11.

Salin kod Kod adalah seperti berikut:

fungsi ialah(){
Kembali ("ActiveXObject" dalam tetingkap);
}

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:

Salin kod Kod adalah seperti berikut:

fungsi ialahIe6() {
// ie6 tidak menyokong window.XMLHttpRequest
Kembalikan isIe() && !window.XMLHttpRequest;
}

Pelayar IE7 Hakim

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:

Salin kod Kod adalah seperti berikut:

fungsi ialahIe7() {
//Hanya IE8 menyokong document.documentMode
Kembalikan isIe() && window.XMLHttpRequest && !document.documentMode;
}

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.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn