เพื่อให้คำตอบสมบูรณ์ต่อไปนี้เป็นตัวอย่างการลบเหตุการณ์ในโลกแห่งความเป็นจริงเมื่อคุณเข้าชมเว็บไซต์และไม่มีการควบคุมโค้ด HTML และ JavaScript ที่สร้างขึ้น
เว็บไซต์ที่น่ารำคาญบางแห่งป้องกันไม่ให้คุณคัดลอกและวางชื่อผู้ใช้ในแบบฟอร์มการเข้าสู่ระบบซึ่งสามารถข้ามได้อย่างง่ายดายหากมีการonpaste
เพิ่มเหตุการณ์ด้วยonpaste="return false"
แอตทริบิวต์ HTML ในกรณีนี้เราต้องคลิกขวาที่ช่องป้อนข้อมูลเลือก "ตรวจสอบองค์ประกอบ" ในเบราว์เซอร์เช่น Firefox และลบแอตทริบิวต์ HTML
อย่างไรก็ตามหากมีการเพิ่มเหตุการณ์ผ่าน JavaScript เช่นนี้:
document.getElementById("lyca_login_mobile_no").onpaste = function(){return false};
เราจะต้องลบเหตุการณ์ผ่าน JavaScript ด้วย:
document.getElementById("lyca_login_mobile_no").onpaste = null;
ในตัวอย่างของฉันฉันใช้ ID "lyca_login_mobile_no" เนื่องจากเป็นรหัสป้อนข้อความที่ใช้โดยเว็บไซต์ที่ฉันเข้าชม
อีกวิธีหนึ่งในการลบเหตุการณ์ (ซึ่งจะลบเหตุการณ์ทั้งหมดด้วย) คือการลบโหนดและสร้างใหม่เช่นที่เราต้องทำหากaddEventListener
ใช้เพื่อเพิ่มเหตุการณ์โดยใช้ฟังก์ชันที่ไม่ระบุตัวตนซึ่งเราไม่สามารถลบได้ด้วยremoveEventListener
ได้ นอกจากนี้ยังสามารถทำได้ผ่านคอนโซลของเบราว์เซอร์โดยการตรวจสอบองค์ประกอบคัดลอกโค้ด HTML ลบโค้ด HTML แล้ววางโค้ด HTML ที่ตำแหน่งเดิม
นอกจากนี้ยังสามารถทำได้เร็วขึ้นและทำงานอัตโนมัติผ่าน JavaScript:
var oldNode = document.getElementById("lyca_login_mobile_no");
var newNode = oldNode.cloneNode(true);
oldNode.parentNode.insertBefore(newNode, oldNode);
oldNode.parentNode.removeChild(oldNode);
อัปเดต: หากเว็บแอปสร้างขึ้นโดยใช้เฟรมเวิร์ก JavaScript เช่น Angular ดูเหมือนว่าโซลูชันก่อนหน้านี้ไม่ทำงานหรือทำให้แอปเสียหาย วิธีแก้ปัญหาอื่นในการอนุญาตการวางคือการตั้งค่าผ่าน JavaScript:
document.getElementById("lyca_login_mobile_no").value = "username";
ในขณะนี้ฉันไม่รู้ว่าจะมีวิธีลบการตรวจสอบความถูกต้องและเหตุการณ์การ จำกัด แบบฟอร์มทั้งหมดโดยไม่ทำลายแอปที่เขียนด้วย JavaScript ทั้งหมดเช่น Angular