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

JS keydown keyup keypress event doesn't work on IOS8 when using third party IME

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

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

是否有任何解决方法来监视按下的 Enter 键?

P.S。此问题类似于 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. 使用textarea代替input
  2. 在 textarea 上添加 'input propertychange paste' 侦听器
  3. 检查 Enter 是否是文本区域值的最后一个字符