event.key is undefined in mobile browsers for keyup, keydown and keypress

后端 未结 2 1029
醉梦人生
醉梦人生 2021-01-17 11:28

The following code is supposed to simply suppress any key press and add the pressed key to a div instead. This works fine on desktop, however on mobile (safari and chrome) <

2条回答
  •  独厮守ぢ
    2021-01-17 11:52

    The only workaround is to get the keycode and cast it to String:

    var str = '';
    var el = document.getElementById('#test');
    document.addEventListener('keypress', function(event) {
      const currentCode = event.which || event.code;
      let currentKey = event.key;
      if (!currentKey) {
        currentKey = String.fromCharCode(currentCode);
      }
      str += currentKey;
      event.preventDefault();
      el.innerHTML = str;
    })
    

提交回复
热议问题