หลักการตัดสิน:
JavaScript เป็นภาษาหลักสำหรับการพัฒนาส่วนหน้า เราสามารถกำหนดประเภทและเวอร์ชันของเบราว์เซอร์ได้โดยการเขียนโปรแกรม JavaScript โดยทั่วไปมีสองวิธีสำหรับ JavaScript ในการกำหนดประเภทของเบราว์เซอร์ วิธีหนึ่งจะขึ้นอยู่กับคุณลักษณะเฉพาะของเบราว์เซอร์ต่างๆ และอีกวิธีหนึ่งถูกกำหนดโดยการวิเคราะห์คุณลักษณะ userAgent ของเบราว์เซอร์ ในหลายกรณี หลังจากกำหนดประเภทเบราว์เซอร์ตามค่าแล้ว จะต้องกำหนดเวอร์ชันของเบราว์เซอร์เพื่อจัดการกับปัญหาความเข้ากันได้ และโดยทั่วไปจะทราบเวอร์ชันของเบราว์เซอร์ได้โดยการวิเคราะห์ userAgent ของเบราว์เซอร์เท่านั้น
ประเภทเบราว์เซอร์
⑴ คุณลักษณะเฉพาะของเบราว์เซอร์
⑵ตาม userAgent
เวอร์ชันเบราว์เซอร์
⑴ตาม userAgent
การตัดสินสำหรับเบราว์เซอร์มือถือ
1. จะทราบได้อย่างไรว่าเป็นเทอร์มินัลมือถือที่ใช้การจับคู่ปกติหรือไม่?
จับคู่ว่า navigator.userAgent มีสตริง AppleWebKit*****Mobile หรือไม่
เบราว์เซอร์ Android qq รุ่น HD มี AppleWebKit เท่านั้น
2. การตัดสินเวอร์ชั่นภาษาของโทรศัพท์มือถือ
ใช้ navigator.browserLanguage เพื่อรับเวอร์ชันภาษาของ Windows Phone
แน่นอนว่าเวอร์ชันภาษาของโทรศัพท์มือถือตัวน้อยที่แสดงความเกลียดชังนั้นมีความแตกต่างด้านความเข้ากันได้เช่นกัน เบราว์เซอร์ที่เข้ากันได้กับเคอร์เนล Mozilla และ Apple WebKit จะแสดงรายการ navigator. language เมื่อเข้าถึงเวอร์ชันภาษา
รหัส:
คัดลอกรหัสรหัสดังต่อไปนี้:
<script type="text/javascript">
เบราว์เซอร์ var={
รุ่น: ฟังก์ชั่น () {
var u = navigator.userAgent, app = navigator.appVersion;
return { // ข้อมูลเวอร์ชันเบราว์เซอร์เทอร์มินัลมือถือ
ตรีศูล: u.indexOf('ตรีศูล') > -1, //เคอร์เนล IE
presto: u.indexOf('Presto') > -1, //opera kernel
webKit: u.indexOf('AppleWebKit') > -1, //Apple, เคอร์เนลของ Google
ตุ๊กแก: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, // เคอร์เนล Firefox
มือถือ: !!u.match(/AppleWebKit.*Mobile.*/), //ไม่ว่าจะเป็นเทอร์มินัลมือถือ
ios: !!u.match(//(i[^;]+;( U;)? CPU.+Mac OS X/), // เทอร์มินัล ios
android: u.indexOf('Android') > -1 ||. u.indexOf('Linux') > -1, // เทอร์มินัล android หรือเบราว์เซอร์ uc
iPhone: u.indexOf('iPhone') > -1 , // ไม่ว่าจะเป็น iPhone หรือเบราว์เซอร์ QQHD
iPad: u.indexOf('iPad') > -1, // ไม่ว่าจะเป็น iPad
webApp: u.indexOf('Safari') == -1 // ไม่ว่าเว็บควรเป็นโปรแกรมที่ไม่มีส่วนหัวและด้านล่างหรือไม่
-
-
ภาษา:(navigator.browserLanguage || navigator. language).toLowerCase()
-
document.writeln("เวอร์ชันภาษา: "+browser.ภาษา);
document.writeln(" ไม่ว่าจะเป็นเทอร์มินัลมือถือ: "+browser.versions.mobile);
document.writeln(" เทอร์มินัล iOS: "+browser.versions.ios);
document.writeln(" เทอร์มินัล android: "+browser.versions.android);
document.writeln(" ไม่ว่าจะเป็น iPhone: "+browser.versions.iPhone);
document.writeln(" ไม่ว่าจะเป็น iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
</สคริปต์>
สถานที่ที่ค่อนข้างพิเศษ
เบราว์เซอร์ UC ไม่มีส่วนหัวของ Android และส่งคืนเฉพาะ: linux ที่นี่ตัดสินโดยคร่าวว่าเป็น Android ที่ใช้ Linux (ข้อกำหนดเบื้องต้นต้องเป็นเทอร์มินัลมือถือซึ่ง UC พอใจ)
ผลการตรวจจับของ Android QQ Browser HD เวอร์ชันคือ: mac, Safari