我注意到 jquery 有一个按键功能。但它似乎只能检测数字和字符的按键事件。它无法检测 F5 按键事件。而最让我吃惊的是网上大家都说F5的keyCode是116,但是我用jquery keypress功能的时候却显示字符t的keyCode是116(好像116是小写的ascii码t)!有人可以给我任何想法以及如何在 javascript 或 jquery 中检测 F5 事件吗?提前非常感谢。
问问题
14408 次
3 回答
5
我不知道你在代码中做错了什么,但 jQuery 确实说F5
is116
和t
is 84
:
一个可能的错误是keypress
会有不同keycode
的,这就是为什么keydown
更优选的原因。
| T | A | F5
keydown | 86 | 65 | 116
keypress| 116 | 97 | -
也F5
不会触发keypress
,因为重新加载部分发生在之前keypress
。
于 2012-12-14T04:59:53.030 回答
4
keypress 事件不接受功能键(F1-F12)。您可以尝试使用 keydown 事件。
于 2012-12-14T05:00:17.833 回答
1
这段代码对我很有用,我
在 chrome 和 firefox 中成功测试了它
<script>
document.onkeydown = capturekey;
document.onkeypress = capturekey;
document.onkeyup = capturekey;
function capturekey(e) {
e = e || window.event;
//debugger
if (e.code == 'F5') {
if (confirm('do u wanna to refresh??')) {
//allow to refresh
}
else {
//avoid from refresh
e.preventDefault()
e.stopPropagation()
}
}
}
</script>
于 2019-12-15T08:30:38.567 回答