ลูกค้าได้แจ้งเคนมาว่าเปิดเว็บไซต์บน Ipad แล้ว Slide ไม่ขึ้น/ไม่ทำงาน และรูปภาพส่วนต่าง ๆ ไม่แสดง เลยทำให้เคนเกิดความสงสัยก่อนเลยว่าไอแพดเป็นตัว iOS เวอร์ชั่นเก่าใช่มั้ย เพราะว่า iOS 10 ที่เคนลองเทสบนไอโฟนมันใช้ได้ปกติ
ข้อสันนิษฐาน
มีข้อสันนิษฐานในตอนต้นอยู่ 2 ข้อ คือ
- WordPress รึเปล่าเพราะมันเพิ่งอัพเกรดเป็นเวอร์ชั่น 4.7.4 เมื่อวันก่อน แล้วมาวันนี้ลูกค้าแจ้งเข้ามาเลย
- เรื่อง HTTPS อีกรึเปล่า เพราะเว็บนี้ไม่ได้ใช้เป็น HTTPS
หลังจาก Web Inspector เข้าไปที่ Ipad แล้วก็พบว่ามันเป็นข้อ 3 คือ
Arrow Function ในไฟล์ Javascript มันใช้ไม่ได้บน iOS 9.3.5 หรือต่ำกว่านั่นเอง
Arrow Function หน้าตาเป็นยังไง?
Arrow Function เพิ่งมาตอนที่ Javascript ES6 ครับ ซึ่งมันเป็นรูปแบบลัดในการเขียนจาก
function(arg) { alert(arg); }
เป็น
(arg) => { alert(arg); }
หรือจะเขียนแบบนี้ก็ได้เช่นกัน
(arg) => alert(arg);
ปัญหาจริง ๆ
ปัญหาในโค้ดจริง ๆ คือเป็นโค้ดเกี่ยวกับป้องกันการคลิกขวาครับ ซึ่งโค้ดที่ใช้จะเป็นแบบนี้
document.AddEventListener('contextmenu', (e) => e.preventDefault());
เลยเปลี่ยนกลับไปใช้เป็นของดั้งเดิม
document.AddEventListener('contextmenu', function(e) { e.preventDefault(); }
ก็กลับมาใช้งานได้แบบไม่มีปัญหาครับ