keydown イベント + osx + Firefox での input.value 代入時のバグ?
keydown イベント + osx + Firefox での input.value 代入時のバグ?
OSX のデバッグ環境がないのでめっちゃはまった。Gecko の DOM イベントでも発生するし、XUL でも発生する。
- keydown イベントハンドラ (useCapture が false) 時に
- OSX で IME がオン
- Enter/Tab などを押したときに
- イベントハンドラの関数で input.value = 'string'
すると、input.value が空になる。通常 OSX の場合、Firefox なら input イベントをウォッチする(keydown で日本語入力時イベント発生しないので)が、Enter なんかのイベントは keydown でも発生して、その時に IME がオンで input.value を変更すると空になってしまう、という。いちおう setTimeout とかでタイミングをずらすとうまくいくけど、根本的な解決ではない…。