如何使用Tab键和蓝牙键盘修复iPad Safari和Chrome崩溃

时间:2016-04-05 23:50:04

标签: html ipad bluetooth mobile-safari mobile-chrome

这真的很烦人 - 当在iPad上使用带有蓝牙键盘的Safari或Chrome网络浏览器时,快速点击Tab键会冻结然后崩溃并重启浏览器(例如,如果你是快速打字员并使用登录任何网站的形式,输入用户ID并快速点击选项卡输入密码。)

注意到iOS 9.3.1,iPad air和iPad mini。

当快速连续输入标签和其他字符时,会注意到蓝牙键盘,并且在使用蓝牙条形码扫描仪(包含标签字符的扫描条形码)时也会注意到这一点。

我正在尝试拦截keydown事件以检测选项卡,但是当发生此崩溃时它不会触发。有人可以建议吗?



var throttleTabKeyMs = 250; // if hits tab key must wait 250ms before next key allowed
var inputLocked = false;
window.addEventListener('keydown', function(e) {
  console.log(e.which);
  if (inputLocked) {
    e.preventDefault();
    return false;
  } else if (e.which === 9) {
    inputLocked = true;
    setTimeout(function() {
      inputLocked = false;
    }, throttleTabKeyMs);
  }
});

<input type='text' placeholder='type fast' />
<input type='text' placeholder='with bluetooth' />
<input type='text' placeholder='keyboard or scanner' />
<input type='text' placeholder='attached to' />
<input type='text' placeholder='your pretty ipad' />
&#13;
&#13;
&#13;

我正在尝试修复它,以便客户至少可以使用他们漂亮的iPad来完成工作。此实验对输入进行了限制,以便在按下TAB键时,keydown事件将被解除,直到250ms通过(选择一个比我通常更高的值来帮助说明SO)。但问题是,这个代码在点击蓝牙/标签错误时似乎无法触发..必须发生在较低级别?

有人可以推荐一种解决方法或一个不同的事件,我可以用来排队输入并防止用户进入/扫描TAB时发生崩溃吗?谢谢!

测试: google.com和众多其他网站上的确认错误,所以我知道这不是我的网络应用程序上下文。其他用户可以重复使用iPad 2和iPad mini。

0 个答案:

没有答案