Email: Takayama Fumihiko <tekezo@pqrs.org>

Firefox をあなた好みに改造! 「簡易 XUL 開発環境」

始めに

簡単な手順であなただけの機能を Firefox に追加

様々な機能を Firefox に追加することが出来る Firefox Extensions 。 マウスジェスチャーのように大幅に操作性を革新するものから、痒いところに手が届く細やかなものまで 多数そろっていますが、それでも欲しい機能が見つからないこともあります。

そんなときに

自分が欲しい機能を簡単な手順で Firefox に追加できれば万事解決です。 幸いにも、Firefox では JavaScript を書くだけで機能を追加することが出来ます。 ここではその手順について紹介しましょう。

開発環境のセットアップ

開発に必要な拡張のインストール

まずは以下の拡張をインストールします。

インストールした拡張の設定

keyconfig

keyconfig をインストールすると、 メニューから「キーボードショートカットのカスタマイズ」が出来るようになりますので、 「JavaScript を読み込んで実行する」機能を追加します。

「新しいキーを追加」する際に、実行するコードを以下のように設定することで、 Windows では C:\sample.js を、 Linux では /home/xxx/sample.js を読み込んで実行してくれるようになります。

設定を行ったら Firefox を再起動して設定を有効にしましょう。

Operating System 実行するコード
Windows f4kc_LoadSubScript("file:///C:/sample.js");
Linux f4kc_LoadSubScript("file:///home/xxx/sample.js");

JavaScript を書こう

ひとまず

簡単な JavaScript を書いて動作確認をしてみましょう。 以下の内容を C:\sample.js という名前で保存します。
alert("OK");
保存した後に、 keyconfig で設定したキーを押してみると "OK" と書かれたダイアログが表示されます。 "OK" の部分をいろいろと変更してダイアログの表示を変えてみましょう。

実際に目的の機能を書こう

目的の機能の書き方は下記ページなどを参考にしながら開発していきます。 例えば、今見ているページの一つ上のディレクトリに移動するコードは以下のようになります。
function move_upper_directory() {
    var uri = window._content.location.href;

    if (uri == null) {
        return;
    }

    // cut URI parameter
    if (uri.match(/^(.+?)\?/) != null) {
        uri = RegExp.$1;
    }

    // chop last '/' if exist.
    if (uri.match(/^(.+?)\/$/) != null) {
        uri = RegExp.$1;
    }

    if (uri.match(/^(.+:\/\/.+\/)[^\/]+$/)) {
        var parenturi = RegExp.$1;
        loadURI(parenturi, null, null);
    }
}

move_upper_directory();

Comments for This Page.
Date: 2005-12-02 00:00 (JST)