วันเสาร์ที่ 25 ตุลาคม พ.ศ. 2551

เรื่องปวดหัวของ spry framework ใน Firefox

มาเขียนบทความนี้ตอน 5 ทุ่มกว่าๆ ฮ่าๆ สาเหตุก็เพราะว่าไปเจอปัญหาจี๊ดๆ ที่ปวดหัวไปสองวันเต็มๆ

ปัญหา : spry framework problem มันไม่ยอมทำงาน event onsubmit ให้ใน firefox

สาเหตุ :

1. external javascript conflict ซึ่งอันนี้ต้องไล่ๆ comment เอาก็น่าจะเจอได้ไม่ยาก
อธิบายต่อว่าก็คือ อาจจะมี javascript ของเราบางตัวที่อาจจะไป get event ซ้อนทับกับ
ของ spry framework ไงละครับ เช่น event จำพวก on ทั้งหลาย วิธีแก้สำหรับคนที่เขียนแยกไฟล์ไว้ก็จะง่าย
เพราะว่าไป comment หรือว่าลองลบออก แล้วดูผล ก็จะเช็คได้ง่ายว่าเกิดจากสาเหตุนี้หรือไม่

2. form tags ใส่ไว้ผิดตำแหน่งตามหลักของ DOM ซึ่งอันนี้แหละครับ ที่ทำผมงงถึงสองวันเต็มๆ
ขอเล่าย้อนไปตั้งแต่สมัยทำงานเขียนเว็บใหม่ๆ กันเลยนะครับ เวลาเขียน <'form> ครอบตัว <'table>
เอาไว้ เพื่อให้สะดวกเวลาจะสร้าง form จะทำให้เกิด extra space ขึ้นครับ ซึ่งมันจะถูกสร้างขึ้นอัตโนมัติ
ทำให้ไม่สวยงามครับ เพราะว่าจะเป็นช่องคั่นระหว่างตัว form tag และ table ในตอนนั้นเองผมก็คิดแผลงๆ
โดยการนำเอา <'form> ไปวางคั่นไว้ระหว่าง < table> กับ <'tr> ครับ ผลก็คือ ทำให้ extra space
หายไปอย่างสวยงาม แต่ทว่ามันไม่ถูกต้องครับ เพราะว่าหากดูตามหลักพื้นฐานของ DOM จะเห็นได้ว่า tag <'tr> กลายเป็น
child ของ <'form> ไปซะงั้น วิธีการที่ถูกต้องคือต้องใส่ <'form> ครอบตัว <'table> ครับ แต่เพิ่ม CSS เข้าไปนิดหน่อย
style="margin:0" ก็จะทำให้ extra space หายไปครับ

เกริ่นยาวไปนิด - -" สรุปที่มาของปัญหาที่ spry มันไม่ทำงานใน FF ก็เพราะว่ากระผมดันทำอะไรแผลงๆนั่นเองขอรับ คุคุคุ

ต้องขอโทษพี่น้องทุกท่านด้วยนะขอรับที่เคยบอกว่าควรจะใส่ <'form> ในแบบแผลงๆ ตอนนี้ก็แก้ไข project ที่เคยทำไปด้วยละ

พี่น้องงงงงงงงงงงง

ด้วยความปรารถนาดี

2 ความคิดเห็น:

Kobdesign's blog กล่าวว่า...

อืมมม ๆ มันเป็นอย่างนี้นี่เองครับท่านปอม ผมก็งงหลายทีนะว่าทำไม ใน IE ได้ แต่ FF กลับไม่ได้ ก็รู้สาเหตุเพิ่มมาล่ะ แต่จริง ๆ มันมีหลายอย่างเลยนะ ที่ IE กับ FF มันแตกต่างกันมากเลย เดี๋ยวค่อย ๆ หาสาเหตุกันไป

NETTO กล่าวว่า...

แจ่มเลย จะได้เอาไปใช้ ไม่ต้องปวดหัวตั้งสองวันครับ

คริคริ สนับสนุนให้เขียน support ทุก browserอยู่แล้วครับ