Operaの "Go to page, "http://www.example.com/"" というアクションをFirefoxのコンテキストメニューに入れたい。つまりコンテキストメニューから特定のページを開く。
searchplugins フォルダにダミーの検索エンジンをつくり、「なんとか.xml」というファイルを開く。
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/"> <os:ShortName>はてな検索</os:ShortName> <os:Description>はてな検索</os:Description> <os:InputEncoding>UTF-8</os:InputEncoding> <os:Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAcUlEQVQ4jWN4/eHnfxh+8PLX/55F7+A4qPI5Bp8BHcA0Pnj56//xS0/gCoMqn//Xij+Jwae+ATCNMAxTCMPofKwuQA4DQnyMMEH3AiE+hpcoNgA9DAjxSQ6TkZAuCPmJULpgIOQkQtFKuQGE4pVQugAA3cmhTB1zHxAAAAAASUVORK5CYII=</os:Image> <os:Url type="text/html" method="GET" template="http://b.hatena.ne.jp/search"> <os:Param name="ie" value="utf8"/> <os:Param name="q" value="{searchTerms}"/> </os:Url> </SearchPlugin>
boldの部分を削除し、http://b.hatena.ne.jp/search を http://www.example.com/ などに変える。下記は変更後。
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/"> <os:ShortName>test</os:ShortName> <os:Description>test</os:Description> <os:Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAcUlEQVQ4jWN4/eHnfxh+8PLX/55F7+A4qPI5Bp8BHcA0Pnj56//xS0/gCoMqn//Xij+Jwae+ATCNMAxTCMPofKwuQA4DQnyMMEH3AiE+hpcoNgA9DAjxSQ6TkZAuCPmJULpgIOQkQtFKuQGE4pVQugAA3cmhTB1zHxAAAAAASUVORK5CYII=</os:Image> <os:Url type="text/html" template="http://www.example.com/"> </os:Url> </SearchPlugin>
完成。"test" という名のダミーの検索エンジンが http://www.example.com/ を開いてくれる。
上は現在愛用している ConQuery のスクリーンショットだけど、コンテキストメニューから検索エンジンを呼び出す拡張であれば何でもいいと思う。サブメニューの中に入れてもいいし、アイコンはデータスキームがどうたらこうたらで変更可。
この方法の利点。
「よく訪問するページはブックマークツールバーに置けばいいじゃん」「つ Places, SpeedDial」なんて野暮なことを言ってはいけない。コンテキストメニューに組み込みたいという需要は絶対にある。
そもそもなぜこんなバカみたいなことを思いついたかというと、「数が増えすぎたブックマークレットをコンテキストメニューに一覧表示したい」と思ったから。
でもブックマークレットの場合「なんとか.xml」にどういう記述をすればいいのか調べてもわからなかったので結局 JSActions を使うことにした。ちなみにこれと同じことをJSActionsでやるには「なんとか.js」に、
gBrowser.loadURI('http://www.example.com/');
と書くだけでいい。
「コンテキストメニューからスクリプト呼び出し」で有名なのは "ContextMenu Extensions" だけど、ヘルプを読んだだけでおなかいっぱいになった。