Rumah > Artikel > hujung hadapan web > Bagaimana untuk Mengesan Versi Penyemak Imbas dan Sistem Pengendalian Menggunakan JavaScript dalam Internet Explorer 6?
Mengesan Versi Penyemak Imbas dan Sistem Pengendalian Menggunakan JavaScript
Masalah:
Anda perlu mengesan versi penyemak imbas dan sistem pengendalian menggunakan JavaScript, tetapi kod yang diberikan gagal berfungsi dalam Internet Explorer 6.
Penyelesaian:
Kod yang anda berikan bergantung pada sifat khusus objek navigator yang tidak disokong dalam pelayar lama seperti Internet Explorer 6. Untuk menangani isu ini , kami boleh menggunakan pendekatan yang lebih komprehensif yang merangkumi pelaksanaan penyemak imbas yang berbeza.
Coretan kod JavaScript berikut menyediakan analisis terperinci tentang versi penyemak imbas dan sistem pengendalian:
var nVer = navigator.appVersion; var nAgt = navigator.userAgent; var browserName = navigator.appName; var fullVersion = ''+parseFloat(navigator.appVersion); var majorVersion = parseInt(navigator.appVersion,10); var nameOffset,verOffset,ix; // In Opera, the true version is after "OPR" or after "Version" if ((verOffset=nAgt.indexOf("OPR"))!=-1) { browserName = "Opera"; fullVersion = nAgt.substring(verOffset+4); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In MS Edge, the true version is after "Edg" in userAgent else if ((verOffset=nAgt.indexOf("Edg"))!=-1) { browserName = "Microsoft Edge"; fullVersion = nAgt.substring(verOffset+4); } // In MSIE, the true version is after "MSIE" in userAgent else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) { browserName = "Microsoft Internet Explorer"; fullVersion = nAgt.substring(verOffset+5); } // In Chrome, the true version is after "Chrome" else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { browserName = "Chrome"; fullVersion = nAgt.substring(verOffset+7); } // In Safari, the true version is after "Safari" or after "Version" else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { browserName = "Safari"; fullVersion = nAgt.substring(verOffset+7); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In Firefox, the true version is after "Firefox" else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { browserName = "Firefox"; fullVersion = nAgt.substring(verOffset+8); } // In most other browsers, "name/version" is at the end of userAgent else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) { browserName = nAgt.substring(nameOffset,verOffset); fullVersion = nAgt.substring(verOffset+1); if (browserName.toLowerCase()==browserName.toUpperCase()) { browserName = navigator.appName; } } // trim the fullVersion string at semicolon/space if present if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix); if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix); majorVersion = parseInt(''+fullVersion,10); if (isNaN(majorVersion)) { fullVersion = ''+parseFloat(navigator.appVersion); majorVersion = parseInt(navigator.appVersion,10); } console.log('' +'Browser name = '+browserName+'<br>' +'Full version = '+fullVersion+'<br>' +'Major version = '+majorVersion+'<br>' +'navigator.appName = '+navigator.appName+'<br>' +'navigator.userAgent = '+navigator.userAgent+'<br>' );
Contoh Output:
Untuk Firefox/12.0, outputnya ialah:
Browser name = Firefox Full version = 12.0 Major version = 12 navigator.appName = Netscape navigator.userAgent = Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
Ini pendekatan secara komprehensif mengesan versi penyemak imbas dan sistem pengendalian merentas pelbagai pelayar dan versi.
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Versi Penyemak Imbas dan Sistem Pengendalian Menggunakan JavaScript dalam Internet Explorer 6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!