Hatena::Groupvimperator

Vimple Star Sprites RSSフィード

 | 

2012-02-01

IMEのon/off状態を取得してスタイリングするプラグイン

| 01:04 | IMEのon/off状態を取得してスタイリングするプラグイン - Vimple Star Sprites を含むブックマーク はてなブックマーク - IMEのon/off状態を取得してスタイリングするプラグイン - Vimple Star Sprites

ime_controller.js を使わずに style コマンドでの記事で

そうそう、bug 6380 – IMEの状態をJavascriptのコードから取得できるべきにあるように、将来的にはJavaScriptとから操作できるようになるかもよ。

と書いて放置していたのを思い出して、とりあえず状態取得からやってみた。

該当のBugはこちら。

おそらく、例によってLinuxでは無理だと思う。

何をやっているか。

  1. focusイベントからフォーカスされている要素を取得
  2. input, textarea 要素だったら、
    • IME状態を取って属性設定
    • keydown イベント取得設定
  3. keydownイベントで毎回IME設定を取得して属性設定

属性設定は、liberator:ime(http://vimperator.org/namespaces/liberatorの名前空間付きの属性)で、trueならIMEオンの状態。

デフォルトのスタイルは以下の様になっている。

textarea[liberator|ime=true],input[liberator|ime=true] {
  outline: thin solid red !important;
}
style -name ime-status * textarea[liberator|ime=true],input[liberator|ime=true] 好きなスタイル

とかでテキトウに変更可能。

追記

実装した中野さんに感謝を

トラックバック - http://vimperator.g.hatena.ne.jp/teramako/20120201