Evitar que una página web se desplace mediante JavaScript

¿Cómo evitar que una página web se desplace utilizando JavaScript?

Solución

Usar onunload sólo permite mostrar mensajes, pero no interrumpirá la navegación (porque es demasiado tarde). Sin embargo, puedes usar onbeforeunload e interrumpirá la navegación:

window.onbeforeunload = function() {
  return "Are you sure you want to navigate away?";
}

Edición: Eliminado confirm() en la sentencia return ya que provocaba una ventana de confirmación como se esperaba, pero también mostraba una segunda confirmación con el resultado de la primera confirmación.

Comentarios (2)

En el ejemplo de Ayman'al devolver false evitas que se cierre la ventana/pestaña del navegador.

window.onunload = function () {
  alert('You are trying to leave.');
  return false;
}
Comentarios (1)

Utiliza onunload.

Para jQuery, creo que esto funciona así:

$(window).unload(function() { 
  alert("Unloading"); 
  return falseIfYouWantToButBeCareful();
});
Comentarios (2)