当使用蓝牙键盘时,我无法在 iPad 上的 Safari 和 Chrome 中找到检测文本字段中箭头键的方法。
使用此测试 HTML 和 JavaScript,触摸输入字段使其获得焦点。
使用箭头键没有任何反应,但键入字母和数字并发生 keydown 事件。
<!DOCTYPE html>
<html>
<head>
<title>Test page.</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
</head>
<body>
<form>
<input id="input" style="width: 600px;" type="textarea" />
</form>
<div id="keydisp" style="width 600px; height: 50px"></div>
<script type="text/javascript">
$(document).keydown(function(event) {
var keyCode = event.which;
document.getElementById("keydisp").innerHTML = "key pressed: " + keyCode;
});
</script>
</body>
</html>
是否可以检测到箭头?
最佳答案
我知道这可能看起来是一个冷酷的答案,如果是这样,我深表歉意。
几周前我一直在努力解决这个问题,最终放弃了。
无数个小时试图让 iPad 上的箭头键触发 onkeydown
事件似乎完全有效,就好像它们甚至没有被按下一样。
游戏(或类似游戏)的一个很好的替代方法是使用 WSAD
键,我就是这样做的。
WSAD
键的代码是:
w: 87,
s: 83,
a: 65,
d: 68
这是您通常检测何时按下 WSAD
键的方式:
$(document).on("keydown", function(event) {
if (event.which == 87) {
// W key Has Been Pressed
} else if (event.which == 83) {
// S key Has Been Pressed
} else if (event.which == 65) {
// A key Has Been Pressed
} else if (event.which == 68) {
// D key Has Been Pressed
}
// prevent the default action
// event.preventDefault(); // This is optional.
});
方向键的代码是:
up: 38,
down: 40,
left: 37,
right: 39
这是您通常检测何时按下箭头键的方式:
$(document).on("keydown", function(event) {
if (event.which == 37) {
// Left Arrow Has Been Pressed
} else if (event.which == 38) {
// Up Arrow Has Been Pressed
} else if (event.which == 39) {
// Right Arrow Has Been Pressed
} else if (event.which == 40) {
// Down Arrow Has Been Pressed
}
// prevent the default action
event.preventDefault();
});
注意:您只能使用 onkeydown
事件来检查箭头键是否已被按下。
您还可以使用 var key = event.keyCode ? event.keyCode : 事件.which;
引用 Peter Darmis :
Versions of Opera before 10.50 messes up by returning non-zero
event.which
values for four special keys (Insert, Delete, Home and End), meaning usingevent.keyCode
may be more "fail safe" across older browsers.
Source
引用 jQuery api:
The event.which property normalizes
event.keyCode
andevent.charCode
. It is recommended to watchevent.which
for keyboard key input. For more detail, read aboutevent.charCode
on the MDN.
Source
祝你好运,万事如意
关于javascript - 如何在带有蓝牙键盘的 iPad 上使用 JavaScript 检测方向键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221024/