2005-10-27 (Thu)

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ブログでも実装されてる機能ですね。

2) takayama (2005-10-29 (Sat) 09:03)

DTIブログって初めて知りましたが、なかなか大人の雰囲気な所ですね。
そっちのが気になった…。

3) (2008-06-22 (Sun) 21:40)

フリガナ

4) pairon (2009-02-02 (Mon) 16:32)

Google Chromeはダメでした。

コメントはお気軽にどうぞ

Cookie に保存しますか?


・スパム対策のため、http:// を含むコメントの投稿は出来ません。
・スパムチェックのため、投稿がすぐに反映されない場合があります。
・メールアドレス入力欄には何も入力しないでください。

トラックバック

トラックバックURL: http://espion.just-size.jp/mt-tb.cgi/536

イケメンになれたらイイナ!: [javascript]自動フリガナ入力 (2005-10-27 (Thu) 23:55) 0%

以前から、たまーにユーザーに「できないの?」と言われて、「できません」とか答えていたんだけど、Googleサジェストとかみてるとどう考えても漢字変換前の文字列から検索されてるので、「あれ?できるんじゃね?」と思って探したら、Kawa.netxpさんのところで発見。試し...



この記事のリンク元

 
Copyright (C) Kyosuke Takayama, All rights reserved.