軽量マウスジェスチャ

Gomita さん作の userChrome.js スクリプト、軽量マウスジェスチャを愛用しているんですが、新版が出ているようなので入れ替えた。

ついでに、現在使っているジェスチャをメモしておこう。

    _performAction: function(event)
    {
        // ここからがジェスチャへの機能割り当てです
        // 自由にカスタマイズしてください
        switch (this._directionChain)
        {
            // 戻る
            case "L": document.getElementById("Browser:Back").doCommand(); break;
            // 進む
            case "R": document.getElementById("Browser:Forward").doCommand(); break;
            // 更新
            case "UD": document.getElementById("Browser:Reload").doCommand(); break;
            // キャッシュを無視して更新
            case "UDU": document.getElementById("Browser:ReloadSkipCache").doCommand(); break;
            // 新しいタブを開く
            case "U": document.getElementById("cmd_newNavigatorTab").doCommand(); break;
            // タブを閉じる
            case "DR": document.getElementById("cmd_close").doCommand(); break;
            // 閉じたタブを復元
            case "DRU": document.getElementById("History:UndoCloseTab").doCommand(); break;
            // 前のタブへ
            case "UL": gBrowser.mTabContainer.advanceSelectedTab(-1, true); break;
            // 次のタブへ
            case "UR": gBrowser.mTabContainer.advanceSelectedTab(+1, true); break;
            // ページ先頭へスクロール
            case "DU": event.view.scrollTo(0, 0); break;
            // ページ末尾へスクロール
            case "D": event.view.scrollTo(0, event.view.document.height); break;
            // ひとつ上の階層へ
            case "ULU": var uri = gBrowser.currentURI;
            if (uri.path == "/")
              return;
            var pathList = uri.path.split("/");
            if (!pathList.pop())
              pathList.pop();
            loadURI(uri.prePath + pathList.join("/") + "/");
            // 未定義のジェスチャ
            default: throw "Unknown Gesture: " + this._directionChain;
        }
    }