0

这真的很烦人 - 在 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' />

我正在尝试破解它,以便客户至少可以使用他们漂亮的 iPad 来工作。这个实验会限制输入,因此如果TAB按下键,则keydown事件将被关闭,直到250ms通过(选择一个比我通常会帮助说明 SO 的值​​更高的值)。但问题是当遇到蓝牙/标签错误时,这段代码甚至似乎都没有触发..一定是发生在较低级别?

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

测试:在 google.com 和许多其他网站上确认了错误,所以我知道这不是我的 Web 应用程序上下文。其他用户可以重现 iPad 2 和 iPad mini 的问题。

4

0 回答 0