ความผิดพลาดที่เกิดจากการข้อผิดพลาดที่เพิ่งค้นพบในChrome - และอื่น ๆWebKit เบราว์เซอร์ * - เฉพาะที่เกี่ยวข้องกับอย่างใดอย่างหนึ่ง (!) %%30%30
, %0%30
หรือ%%300
เป็นส่วนหนึ่งของ URL ซึ่งภายในสิ้นทั้งหมดขึ้นเป็นตัวแทนของสัญลักษณ์เดียวกัน: null คุณสามารถอ่านเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่นี่
ไม่ใช่ข้อบกพร่องที่มีผลต่อลิงก์ส่วนใหญ่ดังนั้นโดยทั่วไปคุณไม่ต้องกังวลกับการวางเมาส์บนลิงก์
หมายเหตุ:
* เบราว์เซอร์ WebKitอื่น ๆได้แก่ Safari, Opera, Steam Browser, Midori, S60 (Symbian), เบราว์เซอร์ Blackberry และเบราว์เซอร์ของ Playstation 3 - แต่ไม่ใช่ Firefox, Internet Explorer หรือ Edge
แก้ไข: ข้อผิดพลาดนี้ได้รับการแก้ไขในChrome 45.0.2454.101ตามที่Deltikชี้ให้เห็น
เพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้น
ปัญหาเกี่ยวข้องกับURL canonicalizerซึ่งจะทำงานทันทีที่คุณโฮเวอร์เหนือลิงก์ - อาจเป็นเพราะการแสดงลิงค์ในแถบสถานะของเบราว์เซอร์และสำหรับการดึงหน้าเว็บล่วงหน้าเพื่อให้โหลดได้เร็วขึ้นเมื่อคลิก
สำหรับบทบาทของ canonicalizer URL:
เมื่อมีการเขียน URL HTML
อาจมีการเขียนในรูปแบบเช่น/home
หรือ../../home
แต่เบราว์เซอร์จำเป็นต้องแปล URL นี้เป็นสิ่งที่มีโปรโตคอลและโดเมนเช่นhttp://superuser.com/home
กัน นอกจาก URL อาจประกอบด้วยURL Escapesที่จำเป็นต้องได้รับการแปลและเหล่านี้หนีเป็นร้อยละเข้ารหัส%%30%30
เช่น (รายการ URL ที่ละเอียดยิ่งขึ้นหนีออกมาที่นี่ )
ฟังก์ชั่นที่ใช้จัดการการแปล URLนี้ คือสิ่งที่เกิดความล้มเหลวเนื่องจากได้รับข้อมูลจากผู้พัฒนาที่ไม่ได้คาดหวัง / จัดการ
นี่คือบทสรุปของการเปลี่ยนรหัสที่แก้ไขปัญหา:
จัดการกับการหลบหลีกซ้อนที่มีปัญหาในพา ธ URL อย่างถูกต้อง
โดยเฉพาะถ้าการไม่ใช้ Escape ในอินพุตจะนำไปสู่ URL เอาต์พุตที่มีลำดับ Escape ใหม่เช่นการแปลงอินพุต "%% 30% 30" เป็น "% 00" ให้หลีกเลี่ยงการนำหน้า '%' เป็น "% 25" เพื่อให้แน่ใจว่าผลลัพธ์ ลำดับจะไม่ถือว่าเป็นลำดับการหลบหนีที่ถูกต้องใหม่
วิธีนี้ช่วยให้มั่นใจได้ว่าการกำหนดค่าให้เป็นมาตรฐานเดียวกันในครั้งที่สองจะไม่ทำการเปลี่ยนแปลงซึ่งเป็นสิ่งสำคัญในการหลีกเลี่ยงข้อขัดข้องและข้อบกพร่องอื่น ๆ ในหลากหลายสถานที่ทั้งในการดีบักและปล่อยบิลด์