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

时间:2012-12-14 04:51:55

标签: javascript jquery keypress

我注意到jquery有一个按键功能。但它似乎只能检测数字和字符的按键事件。它无法检测到F5按键事件。最令我惊讶的是网上的每个人都说F5的keyCode是116,但是当我使用jquery按键功能时,它只显示字符t的keyCode为116(似乎116是小写的ascii代码) T)!有人可以告诉我这个以及如何在javascript或jquery中检测F5事件吗?非常感谢提前。

3 个答案:

答案 0 :(得分:5)

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

http://jsfiddle.net/Brjb2/1

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

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:0)

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