我认为标题解释了这一切,但无论如何我都会深入探讨我的问题:
如何在我的网站上使用Chrome的多功能框[TAB]功能?
由于许多用户要求我在网站上实现该功能,我对OpenSearchDescription进行了研究,并且在FireFox和IE7 / IE8搜索栏的实施方面非常成功。
然而,实施对Chrome Omnibox [TAB]功能并不起作用..
你能帮帮我吗?
我的OSD.xml代码:
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>MySite</ShortName>
<Description>My Site</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">http://MySite.com/favicon.ico</Image>
<Url type="application/x-suggestions+json" method="GET"
template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}" />
<Url type="text/html" method="POST" template="http://MySite.com/query.php">
<Param name="sString" value="{searchTerms}"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>http://www.MySite.com</moz:SearchForm>
</OpenSearchDescription>
这是我页面上osd文件的链接:
<link rel="search" type="application/opensearchdescription+xml" title="MySite" href="/opensearch.xml" />
答案 0 :(得分:8)
我已将您对OpenSearchDescription的内容与我自己网站上的OpenSearchDescription进行了比较,但我不明白为什么您的网站不能正常工作。唯一真正的区别是你使用POST搜索,而我正在使用GET。根据{{3}}页面,IE7不支持POST请求,因此可能是其他浏览器也不支持POST。
我网站上的那个肯定适用于IE8,Chrome 3.0和FF 2.0+。您可以自己比较它们,看看是否能发现差异:this
答案 1 :(得分:4)
让OSD(OpenSearchDescription)在Google Chrome或IE7 / IE8下运行并不像上面提到的那么困难,或者这些浏览器不支持POST请求。
经过一些调整后,我找到了解决整个问题的方法。
我的初始代码:
<Url type="text/html" method="POST" template="http://MySite.com/query.php">
<Param name="sString" value="{searchTerms}"/>
</Url>
此代码直接指向查询页面,并在我的POST请求中传递sString属性的值。
这在FireFox上完美运行,但在IE7 / IE8或谷歌浏览器上效果不佳(我没有用Opera或Safari进行测试......)。
将代码更改为以下部分:
<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
<Param name="sString" value="{searchTerms}"/>
”解决了我与这些浏览器不兼容的问题。
所有电话都直接转到查询页面,即使它最初是一个POST请求,它现在可以在IE7 / IE8和谷歌浏览器上使用。
再次感谢adrianbanks向我提供了导致解决方案的xml文件!