如何检测浏览器中是否有按键支持箭头键?

时间:2013-12-19 12:25:36

标签: javascript jquery events keypress arrow-keys

我正在为填字游戏解算器(波兰语)开发网页游戏(http://szarada.net/wyscigi/)。我计划介绍的一个功能是支持使用箭头键在填字游戏图上移动光标。为了提供更多的用户体验,我希望尽可能支持按键事件(不是按键或按键)以使箭头键(为了让用户通过长按键移动多个字段)。

通过检查多个Internet资源(包括多个StackOverflow条目)我能够实现的是,只有一些浏览器支持按键才能使用箭头键。

这是我的问题 - 如何检测浏览器是否支持触发箭头键的按键事件功能?我正在考虑只检测浏览器(加上浏览器版本),但基于功能的解决方案显然会更具可扩展性。我没有找到任何有用的东西,例如Modernizr。

我正在使用jQuery,因此基于jQuery的建议对我来说最有益。

2 个答案:

答案 0 :(得分:0)

实际上,keyDown是您要查找的事件。如果用户持续按下键,则会反复触发。

所以,不要使用KeyPress,而是使用KeyDown,你可以在所有浏览器中使用。

答案 1 :(得分:0)

我知道这是从2013年开始的,但我必须自己进行按键检测,因为这对我没有帮助。这是我用来解决chrome android不支持keypress的解决方案:

    $(function () {
        "use strict";
        var keypressDetected = false;

        $('body').on('keypress', function(event) {

               keypressDetected = true;
               alert('key press supported!');

        });

        var e = jQuery.Event("keypress");

        e.which = 50; // The key code that you wish to test for

        $("body").trigger(e);

        if (!keypressDetected) {

           // ... do magic here
        }
    });