วันนี้ฉันได้รับข้อเสนอแนะจากข้อผิดพลาดโดยบอกว่าไม่สามารถใช้ฟังก์ชั่นของหน้าเว็บได้ เปิดคอนโซลและพบข้อผิดพลาด: วัตถุไม่ใช่ฟังก์ชั่น
รู้สึกแปลกมาก เหตุใดคุณลักษณะนี้จึงมีปัญหาในทันทีหากยังไม่ถูกย้าย? เบราว์เซอร์กระแสหลักทั้งหมดได้รับการทดสอบเมื่อเปิดตัว
แม้ว่าจะแปลก แต่ก็ยังแก้ปัญหาได้ เมื่อดูที่รหัสฉันพบว่าแอตทริบิวต์ชื่อของวัตถุวิทยุและชื่อฟังก์ชั่นซ้ำกัน รหัสมีดังนี้:
<body> <อินพุต type = "Radio" name = "test" onclick = "test ();"/> <br/> <form action = ""> <อินพุต type = "radio" name = "test" onclick = "test ();"/> </form> </body> } </script>
แก้ไขชื่อฟังก์ชั่นและแก้ไขปัญหา แต่ไม่พบสาเหตุที่แท้จริงเพราะชื่อฟังก์ชันนี้เป็นเช่นนี้มาก่อนและสามารถใช้งานได้ตามปกติ แก้ไขรหัส
onclick = "การแจ้งเตือน (ทดสอบ);"
ฉันพบว่า "Object htmlinputelement" โผล่ขึ้นมาและเบราว์เซอร์แยกวิเคราะห์การทดสอบและกลายเป็นวัตถุ DOM
หลังจากการแจ้งเตือนฟังก์ชั่นสคริปต์สคริปต์ (ทดสอบ); ยังคงเป็นฟังก์ชั่น
เมื่อดูที่เวอร์ชัน SVN ฉันพบว่าเมื่อฉันทำฟังก์ชั่นอื่นฉันเพิ่มแบบฟอร์มเพื่อห่อวิทยุนี้ ทำให้เกิดข้อผิดพลาดในการแยกวิเคราะห์เบราว์เซอร์
สรุป: ไม่มีปัญหากับรหัสโดยไม่ต้องแก้ไข บางทีการเปลี่ยนแปลงอาจทำให้เกิดปัญหาอื่น ๆ ปัญหาความเข้ากันได้ของเบราว์เซอร์บางอย่างเกิดจากรหัสที่ผิดปกติดังนั้นคุณต้องเขียนรหัสในอนาคต!
หากใครรู้ว่าทำไมเบราว์เซอร์แบบฟอร์มจึงถูกแยกวิเคราะห์คุณสามารถบอกฉันได้ไหม ขอบคุณมาก!