表題のとおりのスクリプトです。
元ネタはこちら。
Collection & Copy - LDR、IMEをオフにするGreasemonkeyスクリプト(Flash8限定)
http://d.hatena.ne.jp/brazil/20060904/1157342173
そもそも、よく棒人間にIME切ってくれって怒られて困ってる人少ないんだろうな。いや、けっこう怒られて困ってます(^^;
不便に感じてる人はそれなりにいるんじゃないでしょうか。
Flash8限定はなかなか厳しいので、Windows限定ですが、別のアプローチでIMEをOFFにするスクリプトを書いてみました。
2006/09/06 追記:
より改良したものに差し替えました。
LDRの棒人間に怒られないようにするGreaemonkeyスクリプト(Windows限定)
インストール、IMEをONにしてLDRへ。
これで棒人間に怒られる事もなくなりますね。
注意
バックグラウンドのタブで開いたりした場合は、効果がありません。
解説
原理は実はよくわかってなかったり(^^;
以下のような経過でできました。
FirefoxのパスワードフィールドにフォーカスするとIMEがOFFになる機能を使おう。
ショートカットキーが使えないと話にならないので調査。
LDR の event.js のなかに
HotKey.prototype.ignore = /input|textarea/i;
HotKey.prototype.allow = /element_id/;
<略>
if(!this.allow.test(id) && this.ignore.test(tag)) return;
とあるので、id を element_id にしたパスワードフィールドを作って試行錯誤。
<略>
うまくいくようになったが、ページのどこかをクリックすればIMEがONになってしまう。
↓
ところがフォーカスしてOFFになった状態で再読み込みしてみるとIMEが完全にOFFに。>なぜ?
↓
無限リロードにならないように、Firefoxがlocation.searchに値を入れると再読み込みする習性を利用。
↓
(゚Д゚)ウマー
たぶん、FirefoxはパスワードフィールドでIMEをOFFにする機能を実行したあと、フォーカスが外れればIMEをONにするトリガーかけていて、再読み込むすることでそのトリガーがリセットされてIMEがOFFのままになるんじゃないかと。
この機能は今のところWindows版のみなので、このスクリプトもWindows版Firefoxのみで有効です。
将来的には、他のプラットフォームでもサポートされるかもしれませんね。
余談
dataスキームで読み込んだFlashが動作しない件は、けっこう困りますね。
ちょっと試行錯誤したけど、成果なしorz
これができてしまうとFlashのセキュリティを回避することになるし、根本的に違うアプローチが必要なのかもしれないと思えてきたり。
何かよい方法はないもんでしょうか?
コメントする