繁体   English   中英

如何检测 jquery 中的 F5 刷新按键事件?

[英]how to detect an F5 refresh keypress event in jquery?

我注意到 jquery 有一个按键功能。 但是好像只能检测数字和字符的按键事件。 它无法检测 F5 按键事件。 最让我吃惊的是网上大家都说F5的keyCode是116,但是我用jquery的keypress函数时,只显示字符t的keyCode是116(好像116是小写的ascii码吨)? 有人可以告诉我关于这个以及如何在 javascript 或 jquery 中检测 F5 事件的任何想法。 非常感谢。

我不知道你在代码中做错了什么,但 jQuery 确实说F5116t84

http://jsfiddle.net/Brjb2/1

一种可能的错误是keypress会有不同的keycode ,这就是为什么keydown更受欢迎的原因。

        |  T  |  A  |  F5
keydown |  86 |  65 | 116
keypress| 116 |  97 |  -

同样按F5不会触发keypress因为重新加载部分发生在keypress之前。

按键事件不接受功能键(F1-F12)。 您可以尝试使用 keydown 事件。

这段代码对我有用
我在 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM