Я пытался сделать то же самое, и это выводило меня из себя. В Firefox кажется, что если вы пытаетесь сделать что-то, когда нажата клавиша ESC, он продолжает обрабатывать клавишу ESC, которая затем отменяет все, что вы пытались сделать. Оповещение работает отлично. Но в моем случае я хотел вернуться в историю, которая не сработала. Наконец выяснилось, что я должен был заставить распространение события остановиться, как показано ниже ...
if (keyCode == 27)
{
history.back();
if (window.event)
{
// IE works fine anyways so this isn't really needed
e.cancelBubble = true;
e.returnValue = false;
}
else if (e.stopPropagation)
{
// In firefox, this is what keeps the escape key from canceling the history.back()
e.stopPropagation();
e.preventDefault();
}
return (false);
}