ฉันจะกำหนดเป้าหมายเฉพาะ Internet Explorer 10 สำหรับบางสถานการณ์เช่น CSS เฉพาะ Internet Explorer หรือรหัส JavaScript เฉพาะ Internet Explorer ได้อย่างไร
ฉันลองสิ่งนี้ แต่มันไม่ทำงาน:
<!--[if IE 10]> <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
Internet Explorer 10 ละเว้นความคิดเห็นเงื่อนไขและใช้แทน<html lang="en" class="no-js">
<html class="no-js ie10" lang="en">
@cc_on
ดังนั้นการตรวจสอบว่า IE10 <!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script><!--<![endif]-->
ได้รับการสนับสนุนหรือไม่คุณสามารถใช้รหัสต่อไปนี้: (ผมโพสต์นี้เป็นความคิดเห็นตั้งแต่ IE ยังคงอยู่ในการพัฒนาจึงไม่เป็นที่รู้จักไม่ว่าจะเป็นรุ่นสุดท้ายสนับสนุนคุณสมบัตินี้เช่นกัน)
<script>if(Function('/*@cc_on return document.documentMode===10@*/')()){document.documentElement.className+=' ie10';}</script>
ปรับปรุง: การปรับปรุง: ไม่ต้องการความคิดเห็นตามเงื่อนไข ทำงานได้แม้ว่าการบีบอัด / ประมวลผลความคิดเห็น ไม่มีการเพิ่มคลาสสำหรับ ie11; จะทำงานร่วมกับ ie11 ที่ทำงานในโหมดความเข้ากันได้ ie10; ไม่จำเป็นต้องมีแท็กสคริปต์แบบสแตนด์อโลน (สามารถเพิ่มในจาวาสคริปต์อื่น ๆ ในหัว)
if(document.documentMode) document.documentElement.className+=' ie'+document.documentMode+'mode';
- ซึ่งแก้ปัญหา 90% ของปัญหา (บางครั้งโหมดความเข้ากันได้ล้มเหลวซึ่งในกรณีนี้คุณต้องแก้ไขอีกระดับหนึ่งด้านบน)