ОБНОВЛЕНИЕ: Я думаю, что ваша проблема заключается в использовании селектора "document.body". Это работает для меня в Chrome, но не в Firefox (http://jsfiddle.net/Jncrh/2/). Попробуйте вместо этого просто выбрать «документ» и посмотреть, будет ли он работать. (http://jsfiddle.net/Jncrh/5/)
$(document).bind('keydown',function(e){
if (e.which==37 || e.which==39) {
e.preventDefault();
if (e.which==37) {
alert("going back");
} else {
alert("going forward");
}
}
});
Firefox может подобрать нажатия клавиш в приведенном выше примере, поэтому я подозреваю, что проблема кроется в другом месте вашего кода.
ПРЕДЫДУЩАЯ: Быстрый поиск в Google показывает, что Firefox использует event.charCode
вместо event.keyCode
. Попробуйте это:
key = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if (key===37 || key===39) {...
Тем не менее, jQuery должен быть в состоянии собрать всех с его собственным событием. Которое , поэтому я не понимаю, почему это не работает как есть для вы.