Firefoxのとても便利なアドオンUbiquity。簡単に使える辞書機能を追加してみた。
FirefoxでURLに"about:ubiquity"と入力し、上段のメニューより"Hack Ubiquity"を選択する。ここで、以下のコマンドを入力する。
CmdUtils.CreateCommand({
names: ['mydic'],
arguments: [{role: 'object', nountype: noun_arb_text, label: 'word_to_look_up'}],
preview: function(pblock, args) {
pblock.innerHTML = "<i>" + args.object.text + "</i>: Searching...";
urlBase = "http://btonic.est.co.jp/NetDic/NetDicV09.asmx/";
searchUrl = urlBase + "SearchDicItemLite";
getUrl = urlBase + "GetDicItemLite";
searchParams
= {Dic: "EJdict", Word: args.object.text, Scope: "HEADWORD",
Match: "EXACT", Merge: "AND", Prof: "XML",
PageSize: "20", PageIndex: "0"};
getParams
= {Dic: "EJdict", Loc:"", Prof: "XML"};
jQuery.get(
searchUrl, searchParams,
function(data) {
//itemId = jQuery("ItemID", data).text(); // this works as well.
itemId = jQuery(data).find("ItemID").text();
getParams["Item"] = itemId;
jQuery.get(
getUrl, getParams,
function(data) {
resultStr = jQuery(data).find("Body").text();
pblock.innerHTML = "<i>" + args.object.text + "</i>: " + resultStr;
},
"xml");
},
"xml");
},
execute: function(args) {
urlString = "http://dictionary.goo.ne.jp/search.php?kind=ej&mode=0&kwassist=0&MT=" + args.object.text;
Utils.openUrlInBrowser(urlString);
}
})
これで、Webページ内の好きな英単語を選択してCtrl+Spaceに続き、"mydic"と入力すると、その意味が表示される。Enterキーで詳細表示(簡易表示と詳細表示に別々の辞書を使っている)。
以下はバージョン0.5よりも前向け。参考のために残しておく。
Ctrl+Space入力後に"command-editor"と入力してUbiquity Command Editorを開き、以下のコードを追加する。
CmdUtils.CreateCommand({
name: "mydic",
takes: {"word_to_look_up": noun_arb_text},
preview: function(pblock, word) {
pblock.innerHTML = "<i>" + word.text + "</i>: Searching...";
urlBase = "http://btonic.est.co.jp/NetDic/NetDicV09.asmx/";
searchUrl = urlBase + "SearchDicItemLite";
getUrl = urlBase + "GetDicItemLite";
searchParams
= {Dic: "EJdict", Word: word.text, Scope: "HEADWORD",
Match: "EXACT", Merge: "AND", Prof: "XML",
PageSize: "20", PageIndex: "0"};
getParams
= {Dic: "EJdict", Loc:"", Prof: "XML"};
jQuery.get(
searchUrl, searchParams,
function(data) {
//itemId = jQuery("ItemID", data).text(); // this works as well.
itemId = jQuery(data).find("ItemID").text();
getParams["Item"] = itemId;
jQuery.get(
getUrl, getParams,
function(data) {
resultStr = jQuery(data).find("Body").text();
pblock.innerHTML = "<i>" + word.text + "</i>: " + resultStr;
},
"xml");
},
"xml");
},
execute: function(word) {
urlString = "http://dictionary.goo.ne.jp/search.php?kind=ej&mode=0&kwassist=0&MT=" + word.text
Utils.openUrlInBrowser(urlString);
}
})