FirefoxがVer.25になって非常に困った事態が発生しました。

僕がFirefoxをずっとメインで使っている理由は
ショートカットをカスタマイズできるアドオン「Keyconfig」と
ブックマークレットを組み合わせているからです。

たとえば、調べ物をしている最中にあるキーワードが出てくると
それをコピーして検索欄にペーストして再検索する事が頻繁に出てきます。
この作業が非常にうっとうしいので
テキストを選択してCtrl+Gを押すと別タブでGoogle検索結果表示
というカスタマイズをしてあります。
同様に
テキストを選択してCtrl+Wを押すとWikipediaで検索結果表示」も
設定してあり、調べ物をしている内にタブが増えてきたら
Ctrl+Qでアクティブなタブ以外を全て閉じる」で一気にタブを整理。
これに慣れてしまうともう他のブラウザを使う気にはなれないのです。
(今はChromeでも同様の拡張機能が出ていますけども)

ところが、Firefox25になってから関数の取り扱いが変わってしまい
これらが一気に動かなくなってしまいました。
https://dev.mozilla.jp/2013/10/firefox-25-addon-compatibility/
getShortcutOrURIが使えなくなってしまったせいです。

これをなんとか復旧させたので書いておきます。

まずはこれらのショートカット、およびブックマークレットの設定を。

1.必要アドオンを入手

まずはkeyconfigなんですが、これは最新版はMozillaのアドオンサイトからは
ダウンロード出来なくなってるので、
http://mozilla.dorando.at/からkeyconfig.xpiをインストール。

インストールしてFirefoxを再起動するとアドオンが有効になります。

2.ブックマークレットの作成

次はブックマークレットを作成。

Firefoxに新規ブックマークを作り、出来たブックマークを右クリックして
「プロパティ」を表示。
その中身を以下を参考にして書き換えます。

Firefoxのブックマークのプロパティ画面

Firefoxのブックマークのプロパティ画面

■選択したテキストをGoogle検索する
javascript:(function(){x=document;y=window;if(x.selection) {Q=x.selection.createRange().text;} else if (y.getSelection) {Q=y.getSelection();} else if (x.getSelection) {Q=x.getSelection();};m='http://www.google.co.jp/search?hl=ja&q='+encodeURIComponent(Q)+'&lr=lang_ja';y.open(m,'_blank','');})();

ブックマーク名は適当に短いのを付けて、上記を「URL」欄に設定。
あと重要なのが「キーワード」。
ここに付けた名前を関数で呼び出すので、半角英数字で設定します。
今回はgoogletextsearchと名付けました。
この3つでブックマークレット設定は完了しました。

3.キーボードショートカットにブックマークレットを割り当てる

Firefoxのメニューバー「ツール」→「キーボードショートカットのカスタマイズ」
を選んで、設定画面を表示させる。

keyconfigのカスタマイズ設定画面

keyconfigのカスタマイズ設定画面

左下の「新しいキーを追加」をクリックしてダイアログを開き
名前を適当に(今回はgooglesearchと付けた)つけて、
右側の「Grobal」にチェックを入れる。

そしてcodeと書かれてる部分に関数を書いて、OKを押して
それに任意のショートカットキーを割り当ててやれば全ての設定は完了します。

Firefox24以前はこのcode部分に

if(window.loadURI) loadURI(getShortcutOrURI('ブックマークに設定したキーワード',{}));

と書いてやればちゃんと動いてたのですけども
getShortcutOrURIがFirefox25から使えなくなったので、以下に書き換えます

if(window.loadURI) loadURI(PlacesUtils.getURLAndPostDataForKeyword('ブックマークに設定したキーワード')[0]);

これでようやく動く様になりました。

※もしポップアップブロックが出る場合。

その場合はFirefoxのアドレス欄にabout:configを入力して出てくる画面から
「dom.popup_allowed_events」を探してそれをクリック。
並んでいるイベントに「keypress」を足して下さい。

ちなみに「選択したテキストをwikipedia検索」する場合は
ブックマークレットを作成して中身を以下に。

javascript:(function(){x=document;y=window;if(x.selection)  {Q=x.selection.createRange().text;} else if (y.getSelection) {Q=y.getSelection();} else if (x.getSelection) {Q=x.getSelection();};m='http://ja.wikipedia.org/wiki/'+encodeURIComponent(Q);y.open(m,'_blank','');})();

いやはや、しかし一時は諦めかけましたけども
なんとか出来て本当によかったです。
これが使えないと作業効率ががた落ちになるので・・・・

4.参考サイト

ぺんちゃん日記
[firefox]ブックマークレットとショートカットキーでFireFoxを使いやすくする
http://www.pen-chan.jp/pen-chan/20070510.html

他にも便利そうなブックマークレットがいっぱいあります。
但し、getShortcutOrURIを使用して書かれているのでこのままでは
Firefox25では動きません。

PlacesUtils.getURLAndPostDataForKeywordの書式に置き換えて下さい。