วิธีการตัดสินที่สั้นที่สุดคือที่อยู่เดิม: //www.vevb.com/article/23621.htm
วิธีตัดสินเบราว์เซอร์ที่สั้นที่สุด: var isie =!-[1,]
หลักการ: [1,] ส่งคืน "1" ในเบราว์เซอร์มาตรฐานซึ่งเทียบเท่ากับการโทร [1,]. toString () และส่งคืน "1," ใน IE
เมื่อใช้เครื่องหมายลบกับตัวเลขสำหรับค่าส่งคืนเบราว์เซอร์มาตรฐานจะส่งคืน 1 และ IE ส่งคืน NAN
เมื่อ 1 และ NAN ถูกเปลี่ยนเส้นทางแบบผกผันเบราว์เซอร์มาตรฐานจะส่งคืนเท็จและ IE ส่งคืนจริง
JS กำหนดประเภทเบราว์เซอร์
โดยพื้นฐานแล้วไม่มีปัญหากับข้อความต้นฉบับ แต่วิธีการตัดสินของเขาไม่ได้เข้มงวดมากนัก
ตัวอย่างเช่น: navigator.useragent.indexof ("Safari")> 0 ถ้าคำว่า "Safari" ปรากฏที่ปลายด้านหน้าของผู้ใช้งานมันไม่สามารถรับผลลัพธ์ที่ถูกต้องได้ ควรเปลี่ยนเป็น> 0 เป็น! =-1
จากนั้นฉันทดสอบเบราว์เซอร์เคอร์เนลอิสระ 5 ตัวที่มีอยู่ในเครื่องของฉันและพบว่าค่า useragent ของโอเปร่าคือ "โอเปร่า/9.80 (Windows NT 5.1; ed ... "
มันแค่ยืนยันสิ่งที่ฉันเพิ่งพูด
ในความเป็นจริงส่วนใหญ่เวลาที่เราใช้ความเข้ากันได้ของเบราว์เซอร์เราส่วนใหญ่กำหนดเป้าหมายคือเบราว์เซอร์ที่ไม่ใช่ IE ซึ่งหมายความว่าโดยทั่วไปเราจำเป็นต้องพิจารณาว่าเป็นเบราว์เซอร์ IE หรือไม่
กำหนดรหัสประเภทเบราว์เซอร์ปัจจุบัน
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
-
ฟังก์ชั่น getos ()
-
var osobject = "";
if (isie = navigator.useragent.indexof ("msie")! =-1) {
กลับ "msie";
-
if (isfirefox = navigator.useragent.indexof ("firefox")! =-1) {
กลับ "Firefox";
-
if (ischrome = navigator.useragent.indexof ("chrome")! =-1) {
กลับ "Chrome";
-
if (issafari = navigator.useragent.indexof ("safari")! =-1) {
กลับ "Safari";
-
if (isopera = navigator.useragent.indexof ("opera")! =-1) {
กลับ "โอเปร่า";
-
-
การแจ้งเตือน ("type ->"+getos ());
-
</script>