如何检测textarea上箭头键的按键事件?

Posted

技术标签:

【中文标题】如何检测textarea上箭头键的按键事件?【英文标题】:How to detect key down event for arrow key on textarea? 【发布时间】:2013-02-04 05:25:53 【问题描述】:

创建以下 html 页面:

<textarea id="code" rows="10"></textarea>
<script>
  document.onkeydown = function(event) 
    alert(event.keyCode);
  
</script>

Mobile Safari 上打开它(在模拟器或带键盘的设备上),点击 textarea 开始编辑。现在按任意箭头键 - 事件不会触发。

如何检测方向键是否按下?

附: Apple Bug 报告系统相关问题:13243285

【问题讨论】:

我无法在 JsFiddle 上重现此内容。 JsFiddle Link 您只能在 Mobile Safari 上复制它。 嘿@Altaveron,有什么消息吗?看起来2年后什么都没有改变?我仍然可以在 ios 9.0.1 上的 Mobile Safari 上重现此问题...到目前为止您找到任何解决方案了吗? 是的,发生了一些变化。现在 iOS 中还有很多问题... 【参考方案1】:

苹果官方回答:

感谢您联系 Apple 开发者技术支持 (DTS)。我们的 工程师审查了您的请求并得出结论认为存在 鉴于没有支持的方式来实现所需的功能 目前正在发布系统配置。

【讨论】:

还是没有办法捕捉到这些事件吗?【参考方案2】:
$(selector).keydown(function(e)
    if (e.keyCode == 37)  
       alert( "left pressed" );
       return false;
    
);

字符代码:

37 - 左

38 - 向上

39 - 右

40 - 向下

【讨论】:

不要在 Mobile Safari 上工作。这和问题上的一样。

以上是关于如何检测textarea上箭头键的按键事件?的主要内容,如果未能解决你的问题,请参考以下文章

检测 OS X 上的任何按键,包括修改键

监听 iframe 中的鼠标点击和按键事件

在按键事件中使用jQuery在textarea中设置文本[重复]

如何解决Javascript游戏中的按键延迟问题?

Adobe Animate CC (HTML5 Canvas) 中的按键事件

在 Swift 中检测按键事件