15

タイトルはそれをすべて説明していると思いますが、とにかく私の質問に深く入り込んでいます:

ウェブサイトで Chrome のオムニボックス [TAB] 機能を利用するにはどうすればよいですか?

多くのユーザーがサイトにその機能を実装するように要求したため、OpenSearchDescription について調査し、FireFox および IE7/IE8 Searchbar での実装に非常に成功しました。

しかし、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&amp;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" />
4

2 に答える 2

8

あなたが持っているものを自分のサイトの OpenSearchDescription と比較しましたが、あなたのものが機能しない理由がわかりません。唯一の本当の違いは、検索に POST を使用しているのに対し、私は GET を使用していることです。このページによると、IE7 は POST リクエストをサポートしていないため、他のブラウザも POST をサポートしていない可能性があります。

私のサイトのものは、IE8、Chrome 3.0、および FF 2.0+ で確実に動作します。それらを自由に比較して、違いを見つけることができるかどうかを確認してください: opensearch.XML

于 2009-08-22T23:17:10.453 に答える
5

OSD(OpenSearchDescription)をGoogleChromeまたは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またはGoogleChromeでは完全には機能しません(OperaまたはSafariではまだテストしていません)。


コードを次の部分に変更します。

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
  • 要素からmethod="POST"を削除します
  • /query.phpを実際のページ呼び出しに置き換える:/query.php ?sString={searchTerms}
  • 今は不要な「<Param name="sString" value="{searchTerms}"/>」を削除

それらのブラウザとの非互換性の問題を解決しました。

すべての呼び出しはクエリページに直接送信され、最初はPOSTリクエストでしたが、現在はIE7/IE8とGoogleChromeの両方で機能します。

解決策につながったxmlファイルを提供してくれたadrianbanksにもう一度感謝します!

于 2009-08-23T01:26:20.773 に答える