「任意の検索エンジンで検索ー改良版」の版間の差分
ナビゲーションに移動
検索に移動
作成者の修正 |
ソースコードの整形 |
||
| 13行目: | 13行目: | ||
== ソースコード == | == ソースコード == | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
#title="任意の検索エンジンで検索 Ver 2.5" | #title = "任意の検索エンジンで検索 Ver 2.5" | ||
#tooltip="ポップアップメニューで各種検索エンジンを指定し、選択文字列をブラウザで開く" | #tooltip = "ポップアップメニューで各種検索エンジンを指定し、選択文字列をブラウザで開く" | ||
// ------------------------------------------------- | // ------------------------------------------------- | ||
| 21行目: | 21行目: | ||
// Noah様作成のマクロ「任意の検索エンジンで検索」を、Sukemaru様、Kuro様、Noah様から、フォーラムにおいて多くの助言、指導、tips などをいただき、Takeshi が改良しました。 | // Noah様作成のマクロ「任意の検索エンジンで検索」を、Sukemaru様、Kuro様、Noah様から、フォーラムにおいて多くの助言、指導、tips などをいただき、Takeshi が改良しました。 | ||
// このマクロを起動し、ポップアップメニューから検索エンジンを選択して検索します。 | // このマクロを起動し、ポップアップメニューから検索エンジンを選択して検索します。 | ||
// ポップアップメニュー右に表示されるアクセスキーを押すと、そのメニューが選択されます。 | // ポップアップメニュー右に表示されるアクセスキーを押すと、そのメニューが選択されます。 | ||
| 27行目: | 27行目: | ||
// 文字列が何も選択されていないとステータスバーにメッセージが表示され、マクロを終わります。 | // 文字列が何も選択されていないとステータスバーにメッセージが表示され、マクロを終わります。 | ||
// 注意!!一部の検索エンジンにおける、URLにおける予約文字「/」「:」「&」「+」「=」などへの対処がまだです! | // 注意!!一部の検索エンジンにおける、URLにおける予約文字「/」「:」「&」「+」「=」などへの対処がまだです! | ||
// 上記が原因で検索が上手く行かなかった場合、選択文字列はクリップボードに保存されていますので、手作業で検索ボックスにペーストしてください。 | // 上記が原因で検索が上手く行かなかった場合、選択文字列はクリップボードに保存されていますので、手作業で検索ボックスにペーストしてください。 | ||
| 35行目: | 35行目: | ||
// ここから下に、お好みの検索エンジンとアクセスキーを定義してください。--------------- | // ここから下に、お好みの検索エンジンとアクセスキーを定義してください。--------------- | ||
// f[0] はスキップさせるので、この下のサンプル行はコメントアウト不要です。 | // f[0] はスキップさせるので、この下のサンプル行はコメントアウト不要です。 | ||
f[ f.length ] = [ "検索エンジン名", "https://example.com/search?q=%1", 1 ]; | f[f.length] = ["検索エンジン名", "https://example.com/search?q=%1", 1]; | ||
// 1:検索エンジン名、(&G) などの記述で、「G」をアクセスキーとして設定できます。 | // 1:検索エンジン名、(&G) などの記述で、「G」をアクセスキーとして設定できます。 | ||
| 47行目: | 47行目: | ||
// f[ f.length ] = []; でメニューの中に、セパレータを挿入できます。 | // f[ f.length ] = []; でメニューの中に、セパレータを挿入できます。 | ||
f[ f.length ] = [ "Google(&G)", "https://www.google.co.jp/search?q=%1&ie=utf-8&oe=utf-8" ]; | f[f.length] = ["Google(&G)", "https://www.google.co.jp/search?q=%1&ie=utf-8&oe=utf-8"]; | ||
f[ f.length ] = [ "Google フレーズ検索(&P)", "https://www.google.co.jp/search?q=%22%1%22&ie=utf-8&oe=utf-8", 1 ]; | f[f.length] = ["Google フレーズ検索(&P)", "https://www.google.co.jp/search?q=%22%1%22&ie=utf-8&oe=utf-8", 1]; | ||
f[ f.length ] = [ "Google日英翻訳(&J)", "https://translate.google.com/translate_t?hl=ja&langpair=ja%7Cen&text=%1" ]; | f[f.length] = ["Google日英翻訳(&J)", "https://translate.google.com/translate_t?hl=ja&langpair=ja%7Cen&text=%1"]; | ||
f[ f.length ] = [ "Google英日翻訳(&E)", "https://translate.google.com/translate_t?hl=ja&langpair=en%7Cja&text=%1" ]; | f[f.length] = ["Google英日翻訳(&E)", "https://translate.google.com/translate_t?hl=ja&langpair=en%7Cja&text=%1"]; | ||
f[ f.length ] = [ "Google 書籍検索(&B)", "https://www.google.com/search?tbm=bks&q=%1" ]; | f[f.length] = ["Google 書籍検索(&B)", "https://www.google.com/search?tbm=bks&q=%1"]; | ||
f[ f.length ] = [ "Google 日本語・英語論文検索(&S)", "https://scholar.google.co.jp/scholar?hl=ja&as_sdt=0%2C5&q=%1", 1 ]; | f[f.length] = ["Google 日本語・英語論文検索(&S)", "https://scholar.google.co.jp/scholar?hl=ja&as_sdt=0%2C5&q=%1", 1]; | ||
f[ f.length ] = [ "Google Map(&M)", "https://www.google.co.jp/maps/place/%1", 1 ]; | f[f.length] = ["Google Map(&M)", "https://www.google.co.jp/maps/place/%1", 1]; | ||
f[ f.length ] = []; // 空配列 [] でセパレータ( "" でも可) | f[f.length] = []; // 空配列 [] でセパレータ( "" でも可) | ||
f[ f.length ] = [ "Wikipedia 日本語版(&U)", "https://ja.wikipedia.org/wiki/%1", 1 ]; | f[f.length] = ["Wikipedia 日本語版(&U)", "https://ja.wikipedia.org/wiki/%1", 1]; | ||
f[ f.length ] = [ "Wikipedia 英語版(&C)", "https://en.wikipedia.org/wiki/%1", 1 ]; | f[f.length] = ["Wikipedia 英語版(&C)", "https://en.wikipedia.org/wiki/%1", 1]; | ||
f[ f.length ] = []; // セパレータ | f[f.length] = []; // セパレータ | ||
f[ f.length ] = [ "Amazon 和書検索(&A)", "https://www.amazon.co.jp/s?k=%1&i=stripbooks&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss_1", 1 ]; | f[f.length] = ["Amazon 和書検索(&A)", "https://www.amazon.co.jp/s?k=%1&i=stripbooks&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss_1", 1]; | ||
f[ f.length ] = [ "Amazon 洋書検索", "https://www.amazon.co.jp/s?k=%1&i=english-books&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss", 1 ]; | f[f.length] = ["Amazon 洋書検索", "https://www.amazon.co.jp/s?k=%1&i=english-books&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss", 1]; | ||
f[ f.length ] = [ "Amazon.co.jp 全ジャンル", "https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=%1" ]; | f[f.length] = ["Amazon.co.jp 全ジャンル", "https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=%1"]; | ||
f[ f.length ] = [ "Amazon.com 全ジャンル", "https://www.amazon.com/s?k=%1" ]; | f[f.length] = ["Amazon.com 全ジャンル", "https://www.amazon.com/s?k=%1"]; | ||
f[ f.length ] = []; // セパレータ | f[f.length] = []; // セパレータ | ||
f[ f.length ] = [ "英辞郎", "https://eow.alc.co.jp/search?q=%1", 1]; | f[f.length] = ["英辞郎", "https://eow.alc.co.jp/search?q=%1", 1]; | ||
f[ f.length ] = [ "Weblio 英和和英辞典(&W)", "https://ejje.weblio.jp/content/%1", 1 ]; | f[f.length] = ["Weblio 英和和英辞典(&W)", "https://ejje.weblio.jp/content/%1", 1]; | ||
f[ f.length ] = [ "Weblio 国語辞書", "https://www.weblio.jp/content/%1" ]; | f[f.length] = ["Weblio 国語辞書", "https://www.weblio.jp/content/%1"]; | ||
f[ f.length ] = [ "Weblio 日本語類語辞典(&R)", "https://thesaurus.weblio.jp/content/%1" ]; | f[f.length] = ["Weblio 日本語類語辞典(&R)", "https://thesaurus.weblio.jp/content/%1"]; | ||
f[ f.length ] = [ "Weblio 英語類語辞典(&T)", "https://ejje.weblio.jp/english-thesaurus/content/%1" ]; | f[f.length] = ["Weblio 英語類語辞典(&T)", "https://ejje.weblio.jp/english-thesaurus/content/%1"]; | ||
f[ f.length ] = []; // セパレータ | f[f.length] = []; // セパレータ | ||
f[ f.length ] = [ "Linguee 日英英日翻訳(&L)", "https://www.linguee.jp/%E6%97%A5%E6%9C%AC%E8%AA%9E-%E8%8B%B1%E8%AA%9E/search?source=%E8%8B%B1%E8%AA%9E&query=%1", 1 ]; | f[f.length] = ["Linguee 日英英日翻訳(&L)", "https://www.linguee.jp/%E6%97%A5%E6%9C%AC%E8%AA%9E-%E8%8B%B1%E8%AA%9E/search?source=%E8%8B%B1%E8%AA%9E&query=%1", 1]; | ||
f[ f.length ] = [ "OneLook 英語辞書串刺検索(&O)", "https://www.onelook.com/?w=%1&ls=a" ]; | f[f.length] = ["OneLook 英語辞書串刺検索(&O)", "https://www.onelook.com/?w=%1&ls=a"]; | ||
f[ f.length ] = [ "Merriam-Webster 英語辞書", "https://www.merriam-webster.com/dictionary/%1" ]; | f[f.length] = ["Merriam-Webster 英語辞書", "https://www.merriam-webster.com/dictionary/%1"]; | ||
f[ f.length ] = [ "Merriam-Webster 英語類語辞書", "https://www.merriam-webster.com/thesaurus/%1" ]; | f[f.length] = ["Merriam-Webster 英語類語辞書", "https://www.merriam-webster.com/thesaurus/%1"]; | ||
f[ f.length ] = [ "FreeDic 英語イディオム辞典(&I)", "https://idioms.thefreedictionary.com/%1", 1 ]; | f[f.length] = ["FreeDic 英語イディオム辞典(&I)", "https://idioms.thefreedictionary.com/%1", 1]; | ||
f[ f.length ] = [ "FreeDic 英語類語辞典(&Z)", "https://www.freethesaurus.com/%1" ]; | f[f.length] = ["FreeDic 英語類語辞典(&Z)", "https://www.freethesaurus.com/%1"]; | ||
f[ f.length ] = []; // セパレータ | f[f.length] = []; // セパレータ | ||
f[ f.length ] = [ "Startpage", "https://www.startpage.com/do/search?q=%1" ]; | f[f.length] = ["Startpage", "https://www.startpage.com/do/search?q=%1"]; | ||
f[ f.length ] = [ "DuckDuckGo(&D)", "https://duckduckgo.com/?q=%1&ia=web" ]; | f[f.length] = ["DuckDuckGo(&D)", "https://duckduckgo.com/?q=%1&ia=web"]; | ||
f[ f.length ] = []; // セパレータ | f[f.length] = []; // セパレータ | ||
f[ f.length ] = [ "Yahoo! JAPAN(&Y)", "https://search.yahoo.co.jp/search?p=%1&ei=UTF-8", 1 ]; | f[f.length] = ["Yahoo! JAPAN(&Y)", "https://search.yahoo.co.jp/search?p=%1&ei=UTF-8", 1]; | ||
f[ f.length ] = [ "Bing", "https://www.bing.com/search?q=%1" ]; | f[f.length] = ["Bing", "https://www.bing.com/search?q=%1"]; | ||
f[ f.length ] = [ "Twitter", "https://twitter.com/search?q=%1%20lang%3Aja" ]; | f[f.length] = ["Twitter", "https://twitter.com/search?q=%1%20lang%3Aja"]; | ||
f[ f.length ] = [ " キャンセル & ", 0 ]; // & のうしろの半角空白がアクセラレータ(Spaceキーでキャンセルできます) | f[f.length] = [" キャンセル & ", 0]; // & のうしろの半角空白がアクセラレータ(Spaceキーでキャンセルできます) | ||
// ここまでが、検索エンジンとアクセスキーの定義----------------- | // ここまでが、検索エンジンとアクセスキーの定義----------------- | ||
| 89行目: | 89行目: | ||
// 文字列が選択されていなければ、ステータスバーにメッセージを表示して終了 | // 文字列が選択されていなければ、ステータスバーにメッセージを表示して終了 | ||
if ( ! targetText ) { | if (!targetText) { | ||
Status = "選択文字列がありません!!"; | Status = "選択文字列がありません!!"; | ||
Quit(); | Quit(); | ||
} | } | ||
// 検索が上手く行かなかった場合の保険的処理として、手入力で検索ボックスにペーストするため、選択文字列をクリップボードへ保存しておく | // 検索が上手く行かなかった場合の保険的処理として、手入力で検索ボックスにペーストするため、選択文字列をクリップボードへ保存しておく | ||
document.selection.Copy(); | document.selection.Copy(); | ||
| 101行目: | 101行目: | ||
// var i = 1 にしてダミー要素の f[0] をスキップすると「i」とメニューのIDが一致する | // var i = 1 にしてダミー要素の f[0] をスキップすると「i」とメニューのIDが一致する | ||
for ( var i = 1, len = f.length, id; i < len; i ++ ) { | for (var i = 1, len = f.length, id; i < len; i++) { | ||
if (f[i].length) { | |||
id = f[i][1] ? i : 0; // ← メニューの ID 用変数 | |||
menu.Add(f[i][0], id); | |||
} else { | |||
menu.Add("", 0, meMenuSeparator); // f[i] == [] ならメニュー内にセパレータを表示 | |||
} | |||
} | } | ||
// ポップアップメニューを表示し、選択されたメニューの id を取得する | // ポップアップメニューを表示し、選択されたメニューの id を取得する | ||
var id = menu.Track( mePosMouse ); | var id = menu.Track(mePosMouse); | ||
// 検索サイトに応じた選択文字列の処理、ポップアップメニューから戻る id により判断・分岐 | // 検索サイトに応じた選択文字列の処理、ポップアップメニューから戻る id により判断・分岐 | ||
if ( id ) { | if (id) { | ||
switch (f[id][2]) { | |||
case 1: | |||
// 選択文字列の処理方法に 1 を指定したサイトでは、半角・全角スペースとタブ文字を半角「+」記号に置換する | |||
targetText = targetText.replace(/[ \t]/g, "+"); | |||
break; | |||
default: | |||
// その他の検索サイトでは、選択文字列を URLエンコード処理して、URLの予約文字「/」「:」「&」「+」「=」などに対処する | |||
targetText = encodeURIComponent(targetText); | |||
break; | |||
} | |||
// ポップアップメニューの選択結果に対応した検索サイトURL中の「%1」を選択文字列に置換し、検索用URLを生成する | |||
var url = f[id][1].replace(/%1/g, targetText); | |||
// 検索用URLをブラウザに渡してオープンする | |||
new ActiveXObject("WScript.Shell").Run(url); | |||
// 終了メッセージをステータスバーに表示する | |||
Status = "\"" + menu.GetText(id).replace(/\(&.\)|&/g, "") + "\" で検索"; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2025年4月17日 (木) 11:50時点における版
Noah様作成のマクロ「任意の検索エンジンで検索」を、sukemaru様、Kuro様、Noah様から、フォーラムにおいて多くの助言、指導、tips などをいただき、Takeshi が改良しました。
使用方法
- このマクロを起動し、ポップアップメニューから検索エンジンを選択して検索します。
- ポップアップメニュー右に表示されるアクセスキーを押すと、そのメニューが選択されます。
- ポップアップメニューは Space キーを押すか、メニュー外をクリックするとキャンセルできます。
- 文字列が何も選択されていないとステータスバーにメッセージが表示され、マクロを終わります。
注意事項
- 一部の検索エンジンにおける、URLにおける予約文字「/」「:」「&」「+」「=」などへの対処がまだです!
- 上記が原因で検索が上手く行かなかった場合、選択文字列はクリップボードに保存されていますので、手作業で検索ボックスにペーストしてください。
ソースコード
#title = "任意の検索エンジンで検索 Ver 2.5"
#tooltip = "ポップアップメニューで各種検索エンジンを指定し、選択文字列をブラウザで開く"
// -------------------------------------------------
// Ver 2.5 2019-07-12
// 選択文字列、複数語、複数文を任意の検索エンジンで検索するためのマクロ。
// Noah様作成のマクロ「任意の検索エンジンで検索」を、Sukemaru様、Kuro様、Noah様から、フォーラムにおいて多くの助言、指導、tips などをいただき、Takeshi が改良しました。
// このマクロを起動し、ポップアップメニューから検索エンジンを選択して検索します。
// ポップアップメニュー右に表示されるアクセスキーを押すと、そのメニューが選択されます。
// ポップアップメニューは Space キーを押すか、メニュー外をクリックするとキャンセルできます。
// 文字列が何も選択されていないとステータスバーにメッセージが表示され、マクロを終わります。
// 注意!!一部の検索エンジンにおける、URLにおける予約文字「/」「:」「&」「+」「=」などへの対処がまだです!
// 上記が原因で検索が上手く行かなかった場合、選択文字列はクリップボードに保存されていますので、手作業で検索ボックスにペーストしてください。
// -------------------------------------------------
var f = [];
// ここから下に、お好みの検索エンジンとアクセスキーを定義してください。---------------
// f[0] はスキップさせるので、この下のサンプル行はコメントアウト不要です。
f[f.length] = ["検索エンジン名", "https://example.com/search?q=%1", 1];
// 1:検索エンジン名、(&G) などの記述で、「G」をアクセスキーとして設定できます。
// 2:検索URL(選択文字列が入る場所を「%1」で記述する)
// 3:選択文字列の処理方法(未指定:URLエンコード, 1:半角・全角スペースとタブを「+」に置換。省略可)
// Google フレーズ検索、Wikipedia、Weblio 英和和英辞典 など、複数の単語を "+" で連結して検索する必要があるサイト向けには、選択文字列の処理方法に 1 を指定してください。
// ポップアップメニューに表示する必要のない行はコメントアウトしてください。
// 表示する検索エンジン、アクセスキーの並べ替え/追加/削除はご自由にどうぞ。
// f[ f.length ] = []; でメニューの中に、セパレータを挿入できます。
f[f.length] = ["Google(&G)", "https://www.google.co.jp/search?q=%1&ie=utf-8&oe=utf-8"];
f[f.length] = ["Google フレーズ検索(&P)", "https://www.google.co.jp/search?q=%22%1%22&ie=utf-8&oe=utf-8", 1];
f[f.length] = ["Google日英翻訳(&J)", "https://translate.google.com/translate_t?hl=ja&langpair=ja%7Cen&text=%1"];
f[f.length] = ["Google英日翻訳(&E)", "https://translate.google.com/translate_t?hl=ja&langpair=en%7Cja&text=%1"];
f[f.length] = ["Google 書籍検索(&B)", "https://www.google.com/search?tbm=bks&q=%1"];
f[f.length] = ["Google 日本語・英語論文検索(&S)", "https://scholar.google.co.jp/scholar?hl=ja&as_sdt=0%2C5&q=%1", 1];
f[f.length] = ["Google Map(&M)", "https://www.google.co.jp/maps/place/%1", 1];
f[f.length] = []; // 空配列 [] でセパレータ( "" でも可)
f[f.length] = ["Wikipedia 日本語版(&U)", "https://ja.wikipedia.org/wiki/%1", 1];
f[f.length] = ["Wikipedia 英語版(&C)", "https://en.wikipedia.org/wiki/%1", 1];
f[f.length] = []; // セパレータ
f[f.length] = ["Amazon 和書検索(&A)", "https://www.amazon.co.jp/s?k=%1&i=stripbooks&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss_1", 1];
f[f.length] = ["Amazon 洋書検索", "https://www.amazon.co.jp/s?k=%1&i=english-books&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss", 1];
f[f.length] = ["Amazon.co.jp 全ジャンル", "https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=%1"];
f[f.length] = ["Amazon.com 全ジャンル", "https://www.amazon.com/s?k=%1"];
f[f.length] = []; // セパレータ
f[f.length] = ["英辞郎", "https://eow.alc.co.jp/search?q=%1", 1];
f[f.length] = ["Weblio 英和和英辞典(&W)", "https://ejje.weblio.jp/content/%1", 1];
f[f.length] = ["Weblio 国語辞書", "https://www.weblio.jp/content/%1"];
f[f.length] = ["Weblio 日本語類語辞典(&R)", "https://thesaurus.weblio.jp/content/%1"];
f[f.length] = ["Weblio 英語類語辞典(&T)", "https://ejje.weblio.jp/english-thesaurus/content/%1"];
f[f.length] = []; // セパレータ
f[f.length] = ["Linguee 日英英日翻訳(&L)", "https://www.linguee.jp/%E6%97%A5%E6%9C%AC%E8%AA%9E-%E8%8B%B1%E8%AA%9E/search?source=%E8%8B%B1%E8%AA%9E&query=%1", 1];
f[f.length] = ["OneLook 英語辞書串刺検索(&O)", "https://www.onelook.com/?w=%1&ls=a"];
f[f.length] = ["Merriam-Webster 英語辞書", "https://www.merriam-webster.com/dictionary/%1"];
f[f.length] = ["Merriam-Webster 英語類語辞書", "https://www.merriam-webster.com/thesaurus/%1"];
f[f.length] = ["FreeDic 英語イディオム辞典(&I)", "https://idioms.thefreedictionary.com/%1", 1];
f[f.length] = ["FreeDic 英語類語辞典(&Z)", "https://www.freethesaurus.com/%1"];
f[f.length] = []; // セパレータ
f[f.length] = ["Startpage", "https://www.startpage.com/do/search?q=%1"];
f[f.length] = ["DuckDuckGo(&D)", "https://duckduckgo.com/?q=%1&ia=web"];
f[f.length] = []; // セパレータ
f[f.length] = ["Yahoo! JAPAN(&Y)", "https://search.yahoo.co.jp/search?p=%1&ei=UTF-8", 1];
f[f.length] = ["Bing", "https://www.bing.com/search?q=%1"];
f[f.length] = ["Twitter", "https://twitter.com/search?q=%1%20lang%3Aja"];
f[f.length] = [" キャンセル & ", 0]; // & のうしろの半角空白がアクセラレータ(Spaceキーでキャンセルできます)
// ここまでが、検索エンジンとアクセスキーの定義-----------------
// 選択範囲の文字列を取得
var targetText = document.selection.Text;
// 文字列が選択されていなければ、ステータスバーにメッセージを表示して終了
if (!targetText) {
Status = "選択文字列がありません!!";
Quit();
}
// 検索が上手く行かなかった場合の保険的処理として、手入力で検索ボックスにペーストするため、選択文字列をクリップボードへ保存しておく
document.selection.Copy();
// ポップアップメニューを作成。ラベルの文字列がなければ menu.Add() のオプションフラグ meMenuSeparator を拾う
var menu = CreatePopupMenu();
// var i = 1 にしてダミー要素の f[0] をスキップすると「i」とメニューのIDが一致する
for (var i = 1, len = f.length, id; i < len; i++) {
if (f[i].length) {
id = f[i][1] ? i : 0; // ← メニューの ID 用変数
menu.Add(f[i][0], id);
} else {
menu.Add("", 0, meMenuSeparator); // f[i] == [] ならメニュー内にセパレータを表示
}
}
// ポップアップメニューを表示し、選択されたメニューの id を取得する
var id = menu.Track(mePosMouse);
// 検索サイトに応じた選択文字列の処理、ポップアップメニューから戻る id により判断・分岐
if (id) {
switch (f[id][2]) {
case 1:
// 選択文字列の処理方法に 1 を指定したサイトでは、半角・全角スペースとタブ文字を半角「+」記号に置換する
targetText = targetText.replace(/[ \t]/g, "+");
break;
default:
// その他の検索サイトでは、選択文字列を URLエンコード処理して、URLの予約文字「/」「:」「&」「+」「=」などに対処する
targetText = encodeURIComponent(targetText);
break;
}
// ポップアップメニューの選択結果に対応した検索サイトURL中の「%1」を選択文字列に置換し、検索用URLを生成する
var url = f[id][1].replace(/%1/g, targetText);
// 検索用URLをブラウザに渡してオープンする
new ActiveXObject("WScript.Shell").Run(url);
// 終了メッセージをステータスバーに表示する
Status = "\"" + menu.GetText(id).replace(/\(&.\)|&/g, "") + "\" で検索";
}
スポンサーリンク