GORAGOD.com

IE 8 มันมากับเรื่องปวดหัว

ผมได้ลองดาวน์โหลด IE8 (beta) มาลองใช้ดู ประกฏว่าแห้วเลยครับ หน้าเว็บผมกลายเป็นหน้าขาวๆ View Source ดูก็มีถูกต้องครับ ไฉนจึงเป็นเช่นนั้น

จากการทดสอบทำให้ผมรู้ว่า ถึงเว็บผมจะผ่าน W3C แต่มันไม่ผ่าน IE8 ครับ แค่ tag ผิด เพียงตัวเดียว มันทำให้เว็บผมล่มซะงั้น ผมลองทดสอบดูมันมีปัญหากับทั้ง CSS และ XHTML เลยครับ เขียนผิดแค่บรรทัดเดียวจริงๆ

ความจริงสิ่งที่เขียนมันก็ไม่ได้ผิดในสายตาของ W3C หรอกครับ แต่อาจเป็นเพราะ IE 8 มันทำมาตรฐานไว้สูงปรี๊ด เลยไม่สามารถละเลยข้อผิกพลาดเล็กๆน้อยๆได้

สำหรับปัญหาที่ผมเจอ มีดังนี้ครับ
1. tag ต่างๆต้องให้ถูกต้องตามมาตรฐานของ XHTML เท่านั้น 
2. CSS ต้องเป็นมาตรฐาน 2.1 ขึ้นไป คำสั่งบางคำสั่งอาจใช้ยากขึ้น จนถึงขั้นใช้ไม่ได้ เช่น ผมไม่สามารถใช้ width 100% กับบาง element ได้ ต้องใช้เป็น px ร่วมกับ float (ยังมีอีกหลายอัน)
3. ไม่สามารถใช้ภาษาไทยกับลิงค์หรือ input ได้ อันนี้เพิ่งเจอหมาดๆ พอเปลี่ยนเป็นภาษาอังกฤษก็ปกติครับ (สามารถแก้ไขได้โดยการใส่   กำกับครับ)

<a href="?">&nbsp;ทดสอบ&nbsp;</a>
หรือ
<input type="submit" name="submit" value="&nbsp;ตกลง&nbsp;" />

ทั้ง 3 กรณี ผมไม่ทราบสาเหตุที่แท้จริง แต่ก็นำมาเล่าสู่กันฟังครับ เผื่อมีใครเจอเหมือนผม ถ้าผมถึงบางอ้อเมื่อไร ผมจะมาแก้ไขให้ทราบกันครับ

การแก้ไข มี 1 วิธีหลัก 2 วิธีรองครับ
วิธีหลักคือ แก้ไขโค้ดให้ตรงตามมาตรฐาน 100% ครับ (555+++ แค่ W3C***ยังไม่ผ่านเลย)
อีก 2 วิธีเป็นกำปั้นทุบดินคือ
1. ใน IE 8 สามารถปรับโหมดไปเป็น IE 7 ได้ครับ ที่ปุ่ม "Emulate IE7" คลิกแล้วก็ Restart(IE) ก็ใช้งานได้ตามปกติแล้วครับ
2.กำหนด Document Compatibility ให้กับเพจมันซะเลย

<html>
<head>
<!-- Use IE7 mode -->
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>My Web Page</title>
</head>
<body>
<p>Content goes here.</p>
</body>
</html>

แม้แต่เว็บดังๆหลายๆเว็บก็ใช้วิธีนี้ครับ

อ้างอิง cc288325(VS.85).aspx