俺もこれで真似しているわけだが、まだマネし切れていない部分がある。
それは、かな漢字変換が未確定の段階での、補完候補取得機能。
IME-on でも、キーをタイプする毎に、補完候補が更新されるっていうヤツ。
Google 以外で、この機能を Cross-Browser に実装して、公開している人もいないようだ。
という事で、あの難読化された ac.js から学ぶ事にする。
現段階で分かっている事は、
IME-on 状態で、 IE: キータイプ毎に keydown, keyup が発生する。keypress は発生しない。 未確定段階の入力値を getElementById().value で取得できる。 Firefox: キータイプ毎に keydown, keypress が発生。keyup は発生しない。 未確定段階の入力値を getElementById().value で取得できない。 [Enter]で確定すると、 keyup が発生し、入力値を getElementById().value で取得できる。 Opera: キータイプしても keydown,keypress,keyup は発生しない。 未確定段階の入力値を getElementById().value で取得できない。 [Enter]で確定しても、keydown,keypress,keyup は発生しない。 そこから更に[Enter][Backspase]などの制御キーをタイプすると、 ようやく keydown,keypress,keyup が発生する。[テスト]
やっぱり、google の中の人はすごいなぁ。それにひきかえ Opera の中の人は…。