2

jqueryにkeypress関数があることに気づきました。しかし、それは数字と文字のキープレスイベントしか検出できないようです。F5キー押下イベントを検出できません。そして、私が最も驚いたのは、オンラインの誰もがF5のkeyCodeは116だと言っていますが、jquery keypress関数を使用すると、文字tのkeyCodeが116であることを示しています(116は小文字のASCIIコードのようです) t)!誰かがこれについて、そしてjavascriptまたはjqueryでF5イベントを検出する方法について何かアイデアを教えてもらえますか?よろしくお願いします。

4

3 に答える 3

5

あなたがあなたのコードで何を間違えたのかはわかりませんが、jQueryはそう言っF5116tます84

http://jsfiddle.net/Brjb2/1

考えられるエラーの1つは、keypress異なることです。keycodeそのため、keydownより推奨されます。

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

また、リロード部分はの前に発生するため、を押しF5てもトリガーされません。keypresskeypress

于 2012-12-14T04:59:53.030 に答える
4

keypressイベントは、ファンクションキー(F1〜F12)を受け入れません。キーダウンイベントの使用を試みることができます。

于 2012-12-14T05:00:17.833 に答える
1

このコードは私にとって はうまくいきます
私はそれをクロームとファイアフォックスでうまくテストしました

<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 に答える