Friday, April 28, 2006

IE Bug ใน XMLHttpRequest

วันนี้นั่งทดสอบ Application บน Browser ทั้ง 3 ตัว
โดยจับเอาจอมาวางเรียงกัน 3 จอ
IE, Firefox, Safari

สนุกดี ที่ได้เห็นจุดเล็กจุดน้อยต่างๆกันไป
อย่าง image link บน firefox กับ IE
แสดงสีเป็นปกติ แต่บน Safari แสดงสีเพี้ยนไป
ซึ่งจับได้ว่าเป็นเพราะตอน export image จาก photoshop
มีการ set flag color profile ไว้
ทำให้สีบน safari เพี้ยนไป

แต่ที่หนักสุด ก็คือ Feature Ajax
ที่ไม่ทำงานบน IE
พยายามใส่ message เพื่อตรวจว่ามันตายตรงไหน
ปรากฎว่ามันไปตายตอนที่
เราเรียกใช้ response.responseText
หลังจาก search หาบน google อยู่พักใหญ่
ก็พบว่าเป็น bug ของ IE
ซึ่งเกิดในกรณีที่ message ที่ส่งกลับมา มี Content-Type
ที่ระบุ encoding มาด้วย, การเรียกใช้ responseText
จะทำให้ IE หยุดทำงาน
สาเหตุที่เป็นเช่นนี้เพราะ IE ตั้ง assumption ว่า message ที่ส่งกลับมา
จะมี encoding ในรูปของ utf8 พอมันเจอ header ที่ระบุ
encoding มา ก็เลยเลิกทำงานไปเสียเฉยๆ

Content-type ที่มีปัญหา
Content-Type: text/plain; charset=tis620

Content-type ที่​ IE ชอบ
Content-Type: text/plain


เบื่อจริงๆ เมื่อไรคนจะเลิกใช้ IE กันเสียที

Related link from Roti

No comments: