我在模態窗口中顯示幻燈片放映的頁面。目標受衆是平板電腦用戶,他們通過從右向左或向左滑動來瀏覽節目,以查看下一張或上一張幻燈片。這一切都很精彩。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');
}
};
這些都沒有什麼不同。也許,因爲它是一個帶有iFrame內容的模式窗口,我應該以某種方式訪問父對象?我不確定。我試過parent.focus(),但似乎沒有做任何事情。 – unclesol 2012-04-05 12:30:12
啊,如果它是一個iframe,那麼它會更復雜一點。您需要將事件附加到'top.document.documentElement'。 – 2012-04-05 12:34:01
是的!那就是訣竅。我正在將這個答案標記爲正確的。請更新您的答案以包含iFrame場景。非常感謝你! – unclesol 2012-04-05 12:37:10