Firefox的searchbar默認內置了Google,Bing,Ask,eBay等搜索引擎,但其實除了Google外,別的都不怎么常用。我常用的一個搜索引擎是百Google度,它能同時顯示Google和百度的搜索結果。但是,firefox自然沒有內置這樣一款搜索引擎,而且firefox也沒有提供添加搜索引擎的便利方法,於是,得自己動手了。
(在做這項工作的時候,我是在Ubuntu 11.10的環境下,firefox也是最新的9.0,所以下文以此為准,當然Windows環境下應該大同小異。)
firefox裝在目錄/etc/lib下,到該目錄執行ls,找到目錄firefox-addons,於是一路的ls,cd下去,最終進入目錄/usr/lib/firefox-addons/searchplugins/en-US(剛找了一下,windows下firefox的搜索引擎定義文件存放目錄為:%FIREFOX%\searchplugins,其中%FIREFOX%代表firefox安裝目錄),可以看到該目錄下有一大堆關於搜索引擎定義的xml文件,運行vi google.xml,其內容如下:
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Google</ShortName>
<Description>Google Search</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image>
<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}&q={searchTerms}"/>
<Url type="text/html" method="GET" template="http://www.google.com/search">
<Param name="client" value="ubuntu"/>
<Param name="channel" value="fs"/>
<Param name="q" value="{searchTerms}"/>
<Param name="ie" value="utf-8"/>
<Param name="oe" value="utf-8"/>
</Url>
<SearchForm>http://www.google.com/</SearchForm>
</SearchPlugin>
可以看到是關於Google搜索的一些定義,於是我們照葫蘆畫瓢,新建一個baigoogledu.xml文件,內容如下:
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>BG</ShortName>
<Description>self defined search engine</Description>
<InputEncoding>GB2312</InputEncoding> <!-- 注意,這里只能是GB2312,不能是UTF-8 -->
<Image width="16" height="16" type="image/x-icon"></Image> <!-- 這里應該是logo的base64編碼字符串,暫時沒有找到比較簡單的方法來獲取,就先置空好了 -->
<Url type="text/html" method="GET" template="http://www.baigoogledu.com/s.php">
<Param name="hl" value="zh-CN"/>
<Param name="q" value="{searchTerms}"/>
</Url>
<SearchForm>http://www.baigoogledu.com/s.php</SearchForm>
</SearchPlugin>
上面xml定義中,InputEncoding只能是GB2312,不能是UTF-8,因為baigoogledu頁面指定的encoding是gb2312,所以如果用UTF-8的話,搜索中文會出現亂碼。
好了,重啟firefox,searchbar里面就會出現我們剛定義的baigoogledu搜索引擎了(當然,它其實不算是一個搜索引擎)。另外,如果哪位有比較好的獲得網站logo的base64編碼的方法的話,還望不吝賜教。