У меня есть страница в модальном окне, где я показываю слайд-шоу. Предназначенная аудитория предназначена для пользователей планшетов, и они перемещаются по экрану, прокручивая справа налево или влево вправо, чтобы увидеть следующий или предыдущий слайд. Все это прекрасно работает.JavaScript keyDown Не работает
Однако, если кто-то просматривает страницу с помощью компьютера, я бы хотел, чтобы они могли перемещаться с помощью клавиш со стрелками на клавиатуре. Я могу обнаружить нажатие клавиши, но только после того, как пользователь щелкнул внутри модального окна. Мне бы очень хотелось, чтобы пользователь не должен был щелкнуть где-либо до появления навигации по клавиатуре. Кажется, не имеет значения, что я пытаюсь, это всегда проблема.
Обратите внимание, что это модальное окно, оно выводит его содержимое с помощью iFrame.
Вот код. Я подтвердил, что он запускается при загрузке страницы, а функция pageTurn работает с другими событиями:
document.onkeydown = function(e){
if (e == null) {
keycode = event.keyCode;
} else {
keycode = e.which;
}
if(keycode == 37){
pageTurn('right');
} else if(keycode == 39){
pageTurn('left');
}
};
Ни один из них не сделал ничего другого. Возможно, потому что это модальное окно с содержимым iFramed, я должен каким-то образом получить доступ к родительскому объекту? Я не уверен. Я попробовал parent.focus(), но ничего не сделал. – unclesol
Ах, если это iframe, то это немного сложнее. Вам нужно прикрепить событие к 'top.document.documentElement'. –
Да! Это сделал трюк. Я считаю этот ответ правильным. Обновите свой ответ, чтобы включить сценарий iFrame. Большое спасибо! – unclesol