■ JavaScript で日本語の変換途中の文字列を取得する
input form に onKeyDown とか指定してイベントを受け取るようにすると、現在入力している文字列が取得出来るわけですが、残念ながら日本語の変換確定前の文字列は IE でしか取得出来ません。
しかし setTimeout の処理とかを使えば IE 以外のブラウザでも取得出来るのですが、このやり方について解説している人を見掛けた事が無いので紹介しておきます。ええ、まぁ、実際にそんな事がしたい状況ってのはあんまり無いんですけどね。JavaScript で自動フリガナ入力 ってのを見たら、やっぱり onKeyDown のせいで IE 以外のブラウザには非対応っぽいので Firefox 対応版になったら嬉しいなと思ったもので。
それで肝心のやり方ですが、実際にサンプルを見た方が早いと思うので、以下に用意しました。何も難しい事はしていないので、すぐ試せます。
実際に重たい処理をさせる場合は、入力内容の更新状況をチェックして処理回数を減らすようにとかそういう風にしないと大変重たくなりそうですが、そこまで書くのは面倒だったのでサンプルは単純になってます。すんません。
実はちょっとしたデメリットもあって、IE だと undo が出来なくなります。何故か無反応になります。でもオレは IE は使っていないから、IE のデメリットなんて知らねーって、むしろ Firefox に対応してくれよ!!というわけなの。
いや、もういっそ undo 処理をエミュレートしてくれるスクリプトを書いて下さい、誰か。
Posted by Kyosuke Takayama at 2005-10-27 (Thu) 21:59 printable version
1) DTIブログ (2005-10-28 (Fri) 21:55)
DTIブログでも実装されてる機能ですね。