FireGesturesのスクリプト紹介(2)

検索がほんの少し便利になるかもしれないマニアックなスクリプト集。
「選択範囲をWeb検索」では複数語句検索ができないので作りました。

「選択範囲を検索バーに入力」
「選択範囲を検索バーに追加(半角スペース区切り)」
「(選択範囲を検索バーに入力/追加して)検索バーの内容をWeb検索」の3個1セット+おまけです。
javascriptの知識は一切ないので全体的に冗長な感じですがご了承ください。

・選択範囲を検索バーに入力
var str = FireGestures.getSelectedText();
if (!str){return;}
document.getElementById("searchbar").value = str;

※2行目を消して「何も選択していない時は検索バーをクリア」にした方がいいかも?

・選択範囲を検索バーに追加(半角スペース区切り)
var str = FireGestures.getSelectedText();
if (!str){return;}
if (!document.getElementById("searchbar").value)
document.getElementById("searchbar").value = str;
else
document.getElementById("searchbar").value = document.getElementById("searchbar").value + ' ' + str;

・(選択範囲を検索バーに入力/追加して)検索バーの内容をWeb検索
var str = FireGestures.getSelectedText();
if (str)
document.getElementById("searchbar").value = document.getElementById("searchbar").value + ' ' + FireGestures.getSelectedText();
var searchText = document.getElementById("searchbar").value;
var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
var isSearchbarVisible;
if ("searchBar" in BrowserSearch)
// [Firefox 3]
isSearchbarVisible = isElementVisible(BrowserSearch.searchBar);
else
// [Firefox 2]
BrowserSearch.getSearchBar();
var engine = isSearchbarVisible ? ss.currentEngine : ss.defaultEngine;
var submission = engine.getSubmission(searchText, null);
if (!submission)
return;
gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, false, false);

・(おまけ)選択範囲と完全一致する半角スペースで区切られた語句を検索バーから除外
var str = FireGestures.getSelectedText();
var find = document.getElementById("searchbar").value;
if (str == find){document.getElementById("searchbar").value = '';return;}
else{
find= ' ' + find + ' ';
find = find.replace(' ' + str + ' ',' ');
document.getElementById("searchbar").value = find.substring(1,find.length-1);}