朝顔日記

Firefox の拡張機能、userChrome.js の私の使い方

2006-05-20

拡張機能スレ(何) の part 12 で、userChrome.js の使い方がわからん、というような質問が出ていたのでちょっとググってみましたが今のところあまり情報が無いようなので、userChrome.js の簡単な説明と私の使い方などを少し書いてみます。

ご存知のように、Firefox には、userContent.css と userChrome.css というふたつのユーザスタイルシートがあって、userContent.css のほうは、web ページのコンテンツに対するユーザスタイルを定義するものであるのに対して、userChrome.css は Firefox 自体の外観に対するユーザスタイルを定義するものです。

これらはあくまでスタイルシートですが、最近の流行(?)が、ユーザースクリプトと呼ばれるものです。Firefox であれば、GreaseMonkey などの拡張機能を導入することで実現できますし、Opera なんかは標準装備しているようですね。

これらのユーザースクリプトを使うと、ページが本来持っている機能以上のものをページに付加することが出来るわけです。GreaseMonkey スクリプトはページに対して適用させるもので、Firefox のユーザスタイルシートになぞらえて言えば、userContent.js とでも言うようなものです。で、今回紹介する userChrome.js ですが、これはページに対してというよりは Firefox 自体にスクリプトを追加するようなイメージです。

このようなことを行うには従来、単体のスクリプトでなく拡張機能という形にパッケージングしたものを使って拡張していたわけですが、userChrome.js という拡張機能を導入すると、追加した単体のスクリプトを userChrome.js 経由で実行できるようになります。JavaScript は得意だけど、拡張の作り方とかわがんね、というような方でも簡単に(?) Firefox に機能を追加することが出来ます。

userChrome.js の使い方ですが、拡張機能の方の userChrome.js (userChrome.js.xpi)をインストール後、再起動したら使えるようになるわけですが、userChrome.js という拡張機能はプロファイルの chrome フォルダに置いた、userChrome.js という名前のファイルを読み込んで実行するようになっています。ですから、実行させたいスクリプトを、userChrome.js に記述しておけばよいということになりますね。

で、私の場合ですが、フォーラムの userChrome.js スレ の zeniko 氏の発言にある、Sub-Script Loader というのを使ってユーザスクリプトをロードするようにしています。どうやるとかいうと、Sub-Script Loader を userChrome.js とリネームしてプロファイルフォルダの chrome フォルダに置いておきます。あとは自分の使いたいスクリプトの名前を hogehoge.uc.js としておけば、すべて Sub-Script Loader が読み込んでくれるという方式です。

Sub-Script Loader は chrome フォルダにあるファイルの末尾が .uc.js なファイルを読み込んでくれるように作られているようです。userChrome.js ファイルに複数のスクリプトを記述してもいいのかもしれませんが、機能ごとにスクリプトを分けておいたほうが扱いやすいと考えてこの方法を採用しています。

userChrome.js という拡張はかなり強力で、UI はありませんが有名どころの SuperDragAndGo や、ieview なんかが拡張としてではなく、単一のスクリプトサンプルとして先の userChrome.js スレに上げられています。Firefox の内部にちょっと詳しくてスクリプト書ける人であれば、拡張で実現するようなこともさくっと実現できてしまうわけですね。

userChrome.js と似たような機能を持つ拡張機能としては、JSActionsContextMenu Extensions があり、私は適宜使い分けています。ちょっといじると相互に動くようになったりするのでどれかですべてを動かすことも出来るかもしれません。まぁ私の場合は、スクリプトに弱いのでそれ用のものをそのまま使うだけなんですけどね。:p)

「Firefox の拡張機能、userChrome.js の私の使い方」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

トラックバック

1: SCRAPBLOG/[userChrome.js] ツールバーボタンの中クリックで閉じたタブを復元する (2006-09-17T01:56:19+09:00)
Firefox 2.0 (BonEcho Beta 2) で搭載された機能のうち、使用頻度が非常に高いもののひとつが、「Undo Close Tab」すなわち閉じたタブを復元する機能である。現在この機能を実行するためのアクシ...
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2006/05/diary_060520a.html