В 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(); });
решает проблему, но делает клавишу Backspace непригодной для использования на странице, что еще хуже, чем исходное поведение.
РЕДАКТИРОВАТЬ: Причина, по которой я это делаю, заключается в том, что я не создаю простую веб-страницу, а большое приложение. Потерять 10 минут работы невероятно раздражает только потому, что ты нажал клавишу возврата в неправильном месте. Соотношение предотвращения ошибок и раздражающих пользователей должно быть намного выше 1000/1 за счет предотвращения возврата клавиши назад.
РЕДАКТИРОВАТЬ 2: Я не пытаюсь предотвратить историю навигации, просто несчастные случаи.
EDIT3: комментарий @brentonstrines (перенесен сюда, поскольку вопрос очень популярен): это долгосрочное «исправление», но вы можете оставить свою поддержку за ошибкой Chromium, чтобы изменить это поведение в webkit