如何自定义 Firefox 的搜索引擎?

Ori*_*iol 10 firefox search search-engines

最近我决定使用duckduckgo代替谷歌,并将其安装为搜索引擎。

问题是 Firefox 使用https://duckduckgo.com/opensearch.xml来知道搜索 url。但我想使用parameters自定义它。

然后,我尝试转到 Firefox 的配置文件文件夹search.jsonsearchplugins/duckduckgo.xml使用我自己的参数进行修改。

起初它有效,但我有 Firefox Nightly(每天更新),每次更新后我都会丢失搜索引擎列表。

为了恢复它,我这样做:

  1. 删除search.jsonsearchplugins/duckduckgo.xml
  2. 重启火狐
  3. 再次添加duckduckgo
  4. 修改search.jsonsearchplugins/duckduckgo.xml再次

但我不想每天都这样做。自定义搜索引擎的正确方法是什么?


注 1:新旧之间的差异search.json很小:

1.

  • {"version":7,"buildID":"20131109 030206 ","locale":"en-US","directories":{"Path\\To\\Nightly\\browser\\searchplugins":{"lastModifiedTime":1384018305984,"engines":

  • {"version":7,"buildID":"2013111 0030205 ","locale":"en-US","directories":{"Path\\To\\Nightly\\browser\\searchplugins":{"lastModifiedTime":1384100021250,"engines":

2.

  • "Path\\To\\Profile\\searchplugins":{"lastModifiedTime":1384040082109,"engines":[{"_id":"[profile]/duckduckgo.xml"

  • "Path\\To\\Profile\\searchplugins":{"lastModifiedTime":1384100281656,"engines":[{"_id":"[profile]/duckduckgo.xml"

3.

  • "_urls":[{"template":"https://duckduckgo.com/?q={searchTerms}&myCustomParameter=myCustomValue"

  • "_urls":[{"template":"https://duckduckgo.com/?q={searchTerms}"

注2

我知道我可以使用 URL 关键字和 modify keyword.URL,但我也希望能够使用搜索栏使用我的自定义搜索引擎进行搜索。

然后,我的问题不是如何将自定义搜索引擎添加到 Firefox?.


解决方案

似乎问题在于使用 Firefox 添加 DuckDuckGo。

Firefox 创建了以下内容DuckDuckGo.xml

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>DuckDuckGo</os:ShortName>
<os:Description>Search DuckDuckGo (SSL)</os:Description>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:Image width="16" height="16">data:image/x-icon;base64,...</os:Image>
<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}">
</os:Url>
</SearchPlugin>
Run Code Online (Sandbox Code Playgroud)

但应该是

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
    <ShortName>DuckDuckGo</ShortName>
    <Description>DuckDuckGo. More Privacy. Less Spam.</Description>
    <InputEncoding>UTF-8</InputEncoding>
    <Image height="16" width="16" type="image/x-icon">data:image/x-icon;base64,...</Image>
    <Url type="text/html" method="GET" template="https://duckduckgo.com/">
        <Param name="q" value="{searchTerms}"/>
    </Url>
    <SearchForm>https://duckduckgo.com/</SearchForm>
</SearchPlugin>
Run Code Online (Sandbox Code Playgroud)

不确定我是否也改变了一些东西search.json

小智 4

这是题外话,但感谢匿名搜索引擎DuckDuckGo

您可以使用这个 opensearch Mycroft 项目

它已经创建了所有内容,只需将值输入到文本框中,您就可以获得 XML 代码。

您也可以在这里提交您的网站搜索引擎。

或者

步骤如下:

  1. 需要创建一个 XML 文件,其中包含有关搜索引擎的信息,如 ShortName、描述、URL 等。此处为 XML 文件示例

  2. 为该 XML 文件命名并将其放在这里:

%APPDATA%\Mozilla\Firefox\Profiles\XXXXXXXX.default\searchplugins

或在这里:

%PROGRAM_FILES%\Mozilla Firefox\searchplugins

  1. 修改FireFox首选项文件:

%APPDATA%\Mozilla\Firefox\Profiles\XXXXXXXX.default\prefs.js

只需添加/修改此行:

user_pref("browser.search.selectedEngine", "engine_name");

无需手动修改 SQLite 数据库文件。重新启动 FireFox 后将自动添加新的搜索引擎。

来源