1

我正在使用 javascript 制作打字导师程序。一切都很顺利,除了如果激活浏览器热键会破坏程序的功能。当我在 Firefox 中按下单引号时,它会触发“快速查找(仅限链接)”快捷方式,并且在所有浏览器中,当我按下空格时,页面会向下滚动页面。在此之外一切正常。这是头部的代码:

<script type="text/javascript">
$(document).ready(function() {
    executeType();
});
</script>

我用来捕获键盘的代码(经过简化,但经过测试):

function executeType() {
    $(document).keydown(function(event) {
           alert(event.keyCode);
    });
}
4

1 回答 1

0

如果您想阻止按键具有正常的默认行为,您应该return false从事件处理程序中。

您拿起并使用的任何按键,您都应该取消默认操作。但是,请注意不要通过选择用户可能希望继续用于浏览器快捷方式的 ctrl 组合键来过度阻止。

$(document).keypress(function(event) {
    if (event.ctrlKey || event.altKey || event.metaKey)
        return;
    // do something with keypress
    return false;
});

(这仍然会阻止单键操作,例如向上/向下翻页和 F5 刷新,这不是很好。您通常会查看键代码以仅检测您想要自己处理的键,让其余的通过。除此之外:我在这里使用了 keypress 而不是 keydown,因为 Opera 不支持阻止对 keydown 的默认操作。)

于 2010-04-17T15:16:58.580 回答