ฉันต้องการทราบว่าเบราว์เซอร์ที่ระบุตัวเองผ่านสตริงตัวแทนผู้ใช้ว่าเป็น IE7 หรือ IE8 เป็นเบราว์เซอร์เหล่านั้นจริงๆหรือว่าเป็น IE9 ในโหมดความเข้ากันได้ 7 หรือ 8
จากสิ่งที่ฉันเห็นในสตริงตัวแทนผู้ใช้ IE9 ในโหมดความเข้ากันได้ของ IE7 ให้สตริงที่เหมือนกันกับ IE7 จริง มีคุณสมบัติ / องค์ประกอบ / วัตถุเพิ่มเติมที่ฉันสามารถทดสอบเพื่อดูว่า IE9 "จริงๆ" ปลอมตัวหรือไม่
ฉันคิดว่าโหมดเอกสารจะไม่ช่วยเนื่องจากหน้าที่โหลดสคริปต์ของฉันอาจเป็นการบังคับใช้นิสัยแปลก ๆ หรือบังคับให้มีการตั้งค่าเฉพาะ
ฉันหวังว่า IE9 จะมีคุณสมบัติบางอย่างที่มีอยู่และสามารถทดสอบได้ไม่ว่าจะอยู่ในโหมด 7, 8 หรือ 9 ก็ตาม
แก้ไขเพื่อเพิ่ม ...
ตกลงฉันเข้าใจว่าตอนนี้ฉันผิดพลาดตรงไหน ฉันใช้เมนูแบบเลื่อนลง "โหมดเบราว์เซอร์" และเปลี่ยนเป็น IE8 และ IE7 และคิดว่านี่คือ "โหมดความเข้ากันได้ของ IE8" และ "โหมดความเข้ากันได้ของ IE7" ตามลำดับ นี่ไม่เป็นความจริงแน่นอน โหมดเบราว์เซอร์ของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์กำลังเปลี่ยนเป็น "เป็นเหมือน" เบราว์เซอร์รุ่นเก่าเหล่านั้นจริงๆดังนั้นจึงถูกต้องเท่านั้นที่จะรายงานสตริงผู้ใช้ดั้งเดิม
ถ้าฉันออกจากโหมดเบราว์เซอร์ในความเข้ากันได้ของ IE9 หรือ IE9 และลองใช้ตัวแปรแบบเลื่อนลงของโหมดเอกสารแทนฉันจะได้รับ "Trident / 5.0" ในชุดค่าผสมทั้งหมด 8 แบบ (โหมดเบราว์เซอร์สองโหมดและโหมดเอกสาร 4 โหมด) ฉันต้องหลีกเลี่ยงการเลือกโหมดเบราว์เซอร์ IE7 และ IE8 เพราะเป็น IE7 และ IE8 (จำลอง) จริงๆ
ดังนั้นจึงไม่มีทางที่เพจผู้ใช้ที่ไม่ใช่นักพัฒนาเมตาแท็กหรือรายการความเข้ากันได้ของ Microsoft จะสามารถทำให้ IE9 อยู่ในสถานะที่ไม่สามารถระบุตัวตนได้
เพียงแค่ใช้if(navigator.userAgent.indexOf("Trident/5")>-1)
จะเพียงพอ
ไม่ต้องกังวลนี่ไม่ใช่สำหรับสไตล์การจัดรูปแบบตรรกะหรือเนื้อหาของหน้า ฉันใช้การตรวจจับคุณสมบัติสำหรับสิ่งเหล่านั้น ฉันเพียงแค่ต้องตรวจจับ IE9 (ไม่ว่าจะอยู่ในโหมดใดก็ตาม) และทำการตัดสินใจเกี่ยวกับเนื้อหาที่ไม่ใช่หน้า
ขอบคุณสำหรับคำตอบพร้อมคำแนะนำและลิงก์ของคุณ