บน IE ฉันสามารถทำสิ่งนี้ได้ด้วย jQuery (ที่ไม่ได้มาตรฐาน แต่ทำงานได้)
if ($.browser.msie)
$(document).keydown(function(e) { if (e.keyCode == 8) window.event.keyCode = 0;});
แต่เป็นไปได้ไหมที่จะทำงานใน Firefox หรือใช้เบราว์เซอร์ข้ามโบนัส?
สำหรับบันทึก:
$(document).keydown(function(e) { if (e.keyCode == 8) e.stopPropagation(); });
ไม่ทำอะไรเลย
$(document).keydown(function(e) { if (e.keyCode == 8) e.preventDefault(); });
แก้ปัญหา แต่ทำให้คีย์แบ็คสเปซไม่สามารถใช้งานได้บนหน้าซึ่งเลวร้ายยิ่งกว่าพฤติกรรมเดิม
แก้ไข: เหตุผลที่ฉันทำเช่นนี้คือฉันไม่ได้สร้างหน้าเว็บธรรมดา แต่เป็นแอปพลิเคชันขนาดใหญ่ มันน่ารำคาญอย่างมากที่จะสูญเสียงาน 10 นาทีเพียงเพราะคุณกด Backspace ผิดที่ อัตราส่วนของการป้องกันข้อผิดพลาดเทียบกับผู้ใช้ที่น่ารำคาญควรอยู่เหนือ 1,000/1 โดยการป้องกันคีย์ Backspace จากการนำทางด้านหลัง
แก้ไข 2: ฉันไม่พยายามป้องกันการนำทางประวัติศาสตร์เพียงแค่เกิดอุบัติเหตุ
EDIT3: @brentonstrines ความคิดเห็น (ย้ายมาที่นี่เนื่องจากคำถามดังกล่าวเป็นที่นิยมมาก): นี่คือ 'แก้ไข' ระยะยาว แต่คุณสามารถทิ้งการสนับสนุนของคุณไว้เบื้องหลังChromium bug เพื่อเปลี่ยนพฤติกรรมนี้ใน webkit