Javascript-iPad Tab键检测,带蓝牙键盘
Javascript - iPad Tab Key Detection w/ Bluetooth Keyboard
我有一个文本字段,用户可以在其中键入数据。他们可以使用tab键,然后字段就会缩进。这适用于除带蓝牙键盘的ios之外的所有设备。
如果我访问http://www.rapidtables.com/tools/notepad.htm,我可以在我的台式机/笔记本电脑上打标签。但在我的iPad上。。。没有骰子。
如果我访问https://api.jquery.com/keydown/,https://api.jquery.com/keyup/,https://api.jquery.com/keypress/。。。他们中没有人检测到iPad上的tab键。
tab键适用于Notes等ios原生应用程序,并且tab键可以在网页内的字段之间导航。有没有一种方法可以检测任何人都知道的Javascript中的tab键?
编辑
这是我拼凑的一把小提琴,这样你就可以看到代码和问题的作用:https://jsfiddle.net/9jv0bmbx/1/基本上,我只是在检查适用于台式机/笔记本电脑的e.keyCode===9
。在iPad上,它会注册除制表键之外的所有键。
EDIT2:
这是另一个解决方案。我发现了一篇关于如何捕捉所有事件的文章。下面是一篇jsfiddle,这是我发现这个概念的文章。请注意,在jsfiddle中,我返回了原始的addEventListener,因为您需要的是在添加一个空白侦听器之后完成的。
jsfiddle
var oldAddEventListener = EventTarget.prototype.addEventListener;
EventTarget.prototype.addEventListener = function(eventName, eventHandler)
{
oldAddEventListener.call(this, eventName, function(event) {
if(event.target.id === "textarea" && event.keyCode===9){
event.preventDefault();
$(this).val($(this).val()+"'t");
$("#log").append("<li>Tab Pressed</li>");
}
eventHandler(event);
});
};
$("#textarea").keydown(function(e) {
});
EventTarget.prototype.addEventListener = oldAddEventListener;
编辑:
这里的测试键盘捕获tab键向下。看看这个库,它应该能解决你的问题。要么直接使用该库,要么通过挖掘代码来了解它是如何在iOS上捕获选项卡的。http://dmauro.github.io/Keypress/
有某种硬件/功能键问题阻碍了正常的制表键按下。按OPTION+Tab将像正常情况一样触发处理程序。也许是某种设置导致了这种情况,但很明显,你不能指望你的用户更改他们的设置来使用你的应用程序。你也许可以找到某种方式来利用它,但这似乎是默认的行为,你被它卡住了
可以检测iOS设备,并为选项卡的默认行为找出某种替代。或者,您可以捕捉focusOut或模糊事件,并检测它是否不是由鼠标引起的。
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- Android键盘不适用于包含Javascript的网页
- javascript虚拟键盘
- iPad虚拟键盘-哪一个-javasctript解决方案
- 禁用Tab键以进行具有特定Div ID的输入
- Tab键不会't继续chrome/IE11中的表单字段
- React Native DeviceEventEmitter键盘WillShow停止工作
- 通过键盘编写SVG文本
- 使用键盘箭头在画布上移动字符串
- 将select2与jQuery虚拟键盘配合使用
- 显示数字键盘的Phonegap-js提示
- 当屏幕键盘出现在手机中时,窗体会隐藏起来
- 完整的网站控制与键盘(无鼠标)
- 使用javascript为web应用程序自定义键盘快捷键
- 如何使键盘在多页的Iphone窗体上消失
- Javascript-iPad Tab键检测,带蓝牙键盘
- 带键盘的 j轮播 :使用 Tab 键的错误焦点
- 这可能在javascript中(不使用jquery)使键盘的tab键在if-else条件下启用或禁用吗
- 使用RegEx文本框OnKeyPress不能按Tab键在键盘上
- D3.js键盘控件(tab)