ということで、選択した単語の周辺にポップアップで単語の意味を表示するaddonを作って見ました。Firefox addon初挑戦。
参考にしたページは、Mozilla Developer CenterのXUL / JavaScript / DOMです。最初に "Setting up an extension development environment" を読んで、環境をセットアップしましょう。
基本的には、ウェブページの作成と同じです。XUL(HTML)で画面を設計し、Stylesheetで細かくデザインし、JavaScriptで動きをつける、と。異なる点としては、
- HTMLよりコントロールが豊富なXULが使える
- ブラウザがFirefoxに限定されたため、ブラウザによるJavaScriptの挙動の違いに悩まされることがなくなった(気がしますが、Linuxでしかテストしてないのでわからない)
- Cross site XMLHttpRequestが使える
困った点は、
- 何を設定すれば、Firefoxの「ツール」→「アドオン」→「設定」から開くコンフィグダイアログを開けるようになるのか? (答:install.rdfにoptionsURLタグを書く)
- XULのelementにaddEventListenerしても、event handlerに処理が渡ってこない。(答:いまだわからず。windowにaddEventListenerするという応急処置)
- "about:config"画面に表示されるデータストア (?) に値を保存するにはどうするのか。(答:Components.classes['@mozilla.org/preferences;1'].getService(Components.interfaces.nsIPrefBranch)で取得できるオブジェクト経由でget/set可能。)
最後のComponents.classes[foo].getService(bar)を使いこなせれば、もっと便利なサービスが利用できそうです。が、ドキュメントが見つけられず。
ソースコードはgithubに置きました。
こちらから直接インストールできます。
Popup Dictionary ( http://www.kwakaku.net/public/popupdictionary.xpi )
0 件のコメント:
コメントを投稿