我正在使用javascript制作打字导师程序。一切顺利,除非激活浏览器热键,这会破坏程序的功能。当我按下Firefox中的单引号时,它会触发“快速查找(仅限链接)”快捷方式,而在所有浏览器中,当我按空格键时,页面向下滚动页面。除此之外,一切都很好。这是头脑中的代码:
<script type="text/javascript">
$(document).ready(function() {
executeType();
});
</script>
我用来捕获键盘的代码(简化但经过测试):
function executeType() {
$(document).keydown(function(event) {
alert(event.keyCode);
});
}
答案 0 :(得分:0)
如果你想让按键停止正常的默认行为,你应该从事件处理程序中return false
。
您选择并执行某些操作的按键,您应该取消默认操作。但是,请注意不要过度阻止,例如用户可能希望继续用于浏览器快捷方式的ctrl-key组合。
$(document).keypress(function(event) {
if (event.ctrlKey || event.altKey || event.metaKey)
return;
// do something with keypress
return false;
});
(这仍然会阻止单键操作,例如页面向上/向下和F5到刷新,这不是很好。您通常会查看密钥代码以仅检测您想要处理的密钥自己,让剩下的通过。旁白:我在这里使用了按键而不是keydown,因为Opera不支持阻止keydown上的默认操作。)