javascript – iPad蓝牙键盘使用onKeyUp为任何键返回0的键码

javascript – iPad蓝牙键盘使用onKeyUp为任何键返回0的键码,第1张

概述有些客户在使用iPad蓝牙键盘将文本输入我们的某个内部网站时报告了问题.在屏幕键盘上使用台式机或iPad时,主要按输入某个输入可以正常工作,但使用连接到iPad的蓝牙键盘时则不行. 经过调查,当连接到iPad上的蓝牙键盘时,onKeyUp的任何输入都会返回0作为键码.该演示工作正常,但是当使用屏幕键盘时它不起作用,因为键码返回0. I created this jsFiddle to demons 有些客户在使用iPad蓝牙键盘将文本输入我们的某个内部网站时报告了问题.在屏幕键盘上使用台式机或iPad时,主要按输入某个输入可以正常工作,但使用连接到iPad的蓝牙键盘时则不行.

经过调查,当连接到iPad上的蓝牙键盘时,onKeyUp的任何输入都会返回0作为键码.该演示工作正常,但是当使用屏幕键盘时它不起作用,因为键码返回0. I created this jsFiddle to demonstrate.它在Chrome和Safari for iPad上进行了测试,结果与onKeyPress一样正常,但只返回0与onKeyUp.

$('#inputKeyUp').keyup(function (event){	$("#outputKeyUp").text("Key Up Key: " + event.which);});$('#inputKeyPress').keypress(function (event){	$("#outputKeyPress").text("Key Press Key: " + event.which);});
<script src="https://AJAX.GoogleAPIs.com/AJAX/libs/jquery/2.1.1/jquery.min.Js"></script><textarea ID="inputKeyUp">keyup</textarea><div ID="outputKeyUp">Key Up Key:</div><b/><textarea ID="inputKeyPress">keypress</textarea><div ID="outputKeyPress">Key Press Key:</div>

编辑:刚刚向Apple报告了这个错误.我们将看看是否有任何结果.

解决方法 测试研究

我刚刚对此进行了一些测试,并发现在iOS Safari上使用蓝牙键盘时的keyUp事件中,唯一能够根据属性e.key,e.charCode,e.keyCode提供任何适当反馈的键.以及e.which是以下键:

>逃避
>向上箭头
>左箭头
>右箭头
>向下箭头

所有其他键返回以下内容:

{    key: "Dead",charCode: 0,keyCode: 0,which: 0}

这些特殊键(转义键和箭头键)仅根据语法UIKeyinput {PascalCasedKeyname}在e.key属性上返回不同的值:

> UIKeyinputEscape
> UIKeyinputUpArrow
> UIKeyinputleftArrow
> UIKeyinputRightArrow
> UIKeyinputDownArrow

摘要

在iOS上,基于我的快速学习,你可以在keyUp事件上识别的唯一键是Escape和四个箭头键,通过在e.key属性上匹配它们的名称.这些值也出现在keyDown事件中.

如果您仍然需要等到keyUp事件为您的应用程序触发,并且您需要匹配除这些特殊键之外的其他键,我能想到的唯一解决方案是使用keyDown事件来捕获键,但是然后监听keyDown事件中的keyUp事件如下:

el.addEventListener("keydown",e => {    if (e.which === 13) // Enter key,or which ever key code you'd like        el.addEventListener("keyup",function keyUp(e) {            el.removeEventListener("keyup",keyUp,false) // Memory clean-up            // Your code here        },false)},false)

此外

在快速搜索“UIKeyinput”之后,我发现UIKeyinput是“一组UIResponder用于实现简单文本输入的子类的方法”. (Apple’s Developer Documentation)这将解释这些键名的特殊语法.

总结

以上是内存溢出为你收集整理的javascript – iPad蓝牙键盘使用onKeyUp为任何键返回0的键码全部内容,希望文章能够帮你解决javascript – iPad蓝牙键盘使用onKeyUp为任何键返回0的键码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存