Firefox 搜索框提示无法下载插件的一个可能错误

caixw

这个问题源自 typing 的一个 BUG。最初生成的 opensearch 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
    <InputEncoding>UTF-8</InputEncoding>
    <OutputEncoding>UTF-8</OutputEncoding>
    <ShortName>caixw.io 的搜索引擎</ShortName>
    <Description>由 caixw.io 提供的搜索引擎,可根据标题和内容搜索文章。</Description>
    <LongName>caixw.io 的搜索引擎</LongName>
    <Image type="image/png">/favicon.png</Image>
    <Url template="/search.html?q={searchTerms}" method="GET" type="text/html" />
    <Developer>typing</Developer>
    <Language>zh-cmn-Hans</Language>
</OpenSearchDescription>

无意中发现在 Firefox 搜索框中添加搜索引擎时,会提示:“无法下载插件”。照官方的排错指南提示了以下两种可能:

  • 没有正确设置 xmlns 属性值;
  • 必须包含一个 type 属性值为 text/htmlUrl 元素;

但是很明显我的这份 opensearch.xml 没有这些问题。之后又根据自己的经验,去尝试修改可能出错的地方,比如去掉多余的元素、修改 Content-Type 为 text/xml 等,但是错误依旧。于是这个 BUG 就被扔在了 Github 上,期待有缘人来解决了。

直接到后来某次将 Url 元素的 template 改成带域名的绝对 URL,发现一切都正常了。