javascript - 使用第三方 IME 时,JS keydown keyup keypress 事件在 IOS8 上不起作用

标签 javascript ios html ios8 mobile-safari

$(window).keypress(function(event) {
  alert(event.which);
}

在 IOS 7 上,这在使用系统默认 IME 时有效,但在使用第三方 IME 时不起作用。第三方输入法似乎没有发送 keydown/keyup/keypress 事件。

有什么解决方法可以监视按下的 Enter 键吗?

附言此问题类似于 iOS 8 3rd party keyboards don't register javascript/jQuery keyup, keypress, keydown etc ,但是有什么解决方法可以监视“Enter”键按下事件吗?

最佳答案

我找到了解决方法

  $("#textarea").on('input propertychange paste',function(e){
    var input = e.currentTarget.value;
    if(input[input.lenght -1] == '\n') {
      //do something
    }
  })
  1. 使用文本区域替换输入
  2. 在文本区域添加“输入属性更改粘贴”监听器
  3. 检查 Enter 是否是文本区域值的最后一个字符

关于javascript - 使用第三方 IME 时,JS keydown keyup keypress 事件在 IOS8 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28945767/

相关文章:

javascript - jquery 选择器规范,无 ID 或类

javascript - 我可以使用什么代码使视频/动画/声音剪辑在我的网站上的特定时间后播放? Javascript 能做到这一点吗?

javascript - 根据位置设置动画 div

javascript - 用数组数据绘制圆弧

javascript - 正则表达式匹配序列(如果不以特定字符开头和结尾)

ios - 加载 ViewController 时出错 - 加载了 Nib ,但未设置 View 导出

ios - 从 WKPickerInterface 获取选中的索引

ios - 缩小导航栏中的图像

html - 将 HTML 文档保存到磁盘

javascript - 如何根据可变的左百分比对齐文本