日本語入力中であることを知る
日本語入力中はkeypressイベントが発火しないので、keypressイベントが発火していなかったときのkeyupイベントを日本語入力中とみなすことができる。
(keyupイベントはkeypressイベントのあとに実行される)
日本語入力の確定タイミングで処理する
PCのキーボードなどでは日本語変換をenterキーで確定するため、enterキーを拾って処理することができるが、iOSなどの仮想キーボードでは確定タイミングでkeyイベントが発火しない。
そのため compositionend イベントを使うのが良さそう。