我正在为填字游戏解算器(波兰语)开发网页游戏(http://szarada.net/wyscigi/)。我计划介绍的一个功能是支持使用箭头键在填字游戏图上移动光标。为了提供更多的用户体验,我希望尽可能支持按键事件(不是按键或按键)以使箭头键(为了让用户通过长按键移动多个字段)。
通过检查多个Internet资源(包括多个StackOverflow条目)我能够实现的是,只有一些浏览器支持按键才能使用箭头键。
这是我的问题 - 如何检测浏览器是否支持触发箭头键的按键事件功能?我正在考虑只检测浏览器(加上浏览器版本),但基于功能的解决方案显然会更具可扩展性。我没有找到任何有用的东西,例如Modernizr。
我正在使用jQuery,因此基于jQuery的建议对我来说最有益。
答案 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
}
});