ทำไม IE7 ปัญหามันเยอะแบบนี้ฟร่ะ …….

จริง ๆ ว่าหลังปีใหม่กะจะเขียน blog สักวันละ 1 – 2 ตอนเป็นอย่างน้อย ๆ แต่ว่ามันก็ทำลำบาก เพราะช่วงอาทิตย์นี้ต้องปั่นงานส่งอาจารย์หลายชิ้นด้วยกัน ซึ่งเอาตัว Framework ที่เราทำมาทดสอบ ซึ่งก็เป็นไปได้ดีไอเดียในการทำและลำดับการทำงานเป็นไปตามที่ต้องการเกือบทั้งหมด แต่ก็มีการปรับแต่งบ้างตามความผิดพลาดที่เกิดขึ้น

แต่ปัญหาหลักคือ JavaScript บางตัวกลับไม่สามารถทำงานได้อย่างถูกต้องใน IE 7 ซึ่งผมแปลกใจมากว่าทำไม อย่างเช่นการ return false; ใน confirm Event ของ JavaScript ที่มันไม่ยอม Cancel ให้

  1. <form method="get" action="http://www.google.com">
  2. <input onclick="return confirm('Goto Google');" value="Goto Google" type="submit" />
  3. </form>

จากโค้ดด้านบนนี้ถ้าใน IE7 จะ OK หรือ Cancel มันก็จะเข้าเว็บ Google.com แต่ใน Firefox นี่ทำงานถูกต้อง โดยเจ้า Confirm Event ของ JavaScript มันจะ return Boolean ที่เป็น true กับ false ลองมาปรับเปลี่ยนใหม่อีกนิดให้แน่ใจไปเลยว่า return false; มันใช้งานไม่ได้จริง ๆ

  1. <form method="get" action="http://www.google.com">
  2. <input onclick="return false;" value="Goto Google" type="submit" />
  3. </form>

จากด้านบนนี่กดยังไง มันก็ไม่มีทางที่จะ submit ได้แน่ ๆ แต่นี่ใน IE7 มันหน้าด้าน submit ได้อีก -_-‘ ไว้ฟร่ะ …… เซง ๆๆๆ ทางแก้ที่โคตรจะกำปั้นทุบดินเลยก็คือตรวจเช็ค Browser แล้วเอา จนได้แบบนี้

  1. <script type="text/javascript">
  2.     if(confirm("Goto Google"))
  3.         return true;
  4.     else {
  5.         if(navigator.appName == "Microsoft Internet Explorer") window.event.returnValue=false;
  6.         else return false;
  7.     }
  8. }
  9. <form method="get" action="http://www.google.com">
  10. <input onclick="return validForm();" value="Goto Google" type="submit" />
  11. </form>

เฮ้อ ….. ต้องมานั่งเช็คก่อนอีกว่าเป็น IE หรือเปล่าถ้าใช่ก็ใช้ event ของ IE เองในการ return false; ออกไปแทน แล้วถ้้าวันหนึ่ง appName ของ IE มันไ่ม่ใช่ “Microsoft Internet Explorer” ก็ต้องมานั่งแก้ใหม่อีกหรือไงฟร่ะ …….

เฮ้อ …… เหนื่อยกับอะไรที่มันไร้สาระจริง ๆ ทำอะไรให้มันเหมือนชาวบ้านเค้าหน่อยไม่ได้หรือไง Microsoft !!!

3 thoughts on “ทำไม IE7 ปัญหามันเยอะแบบนี้ฟร่ะ …….

  1. ทำแบบนี้ผมว่ามันไม่ค่อยสวยเท่าไหร่นะครับ
    ลองใช้พวก library ตัวอื่นช่วยดีกว่ามั้ย อย่างพวก prototype หรือ dojo
    ตอนนี้ผมดู jquery อยู่ ก็ท่าทางใช้ได้ดี

  2. javascript src ก็ทำให้หน้านั้นไม่แสดงด้วยครับ ว่างเปล่า ไปเลย

Leave a Reply