En IE puedo hacer esto con el jQuery (terriblemente no estándar, pero que funciona)
if ($.browser.msie)
$(document).keydown(function(e) { if (e.keyCode == 8) window.event.keyCode = 0;});
¿Pero es posible hacerlo de una manera que funcione en Firefox, o en una forma de navegador cruzado para obtener una bonificación?
Para el registro:
$(document).keydown(function(e) { if (e.keyCode == 8) e.stopPropagation(); });
no hace nada.
$(document).keydown(function(e) { if (e.keyCode == 8) e.preventDefault(); });
resuelve el problema, pero hace que la tecla de retroceso no se pueda usar en la página, lo que es aún peor que el comportamiento original.
EDITAR: La razón por la que hago esto es que no estoy creando una página web simple sino una aplicación grande. Es increíblemente molesto perder 10 minutos de trabajo solo porque presionó la tecla de retroceso en el lugar equivocado. La proporción de prevención de errores frente a usuarios molestos debería estar muy por encima de 1000/1 al evitar que la tecla de retroceso navegue hacia atrás.
Edit2: Soy no tratar de evitar que el historial de navegación, los accidentes solo.
EDITAR3: comentario de @brentonstrines (movido aquí ya que la pregunta es muy popular): Esta es una 'solución' a largo plazo, pero podría brindar su apoyo detrás del error Chromium para cambiar este comportamiento en el kit web