同じページに2つの(異なる)GoogleCSE検索ボックスを実装しようとしています。問題は、最初のインスタンスのみが正しく機能することです。たとえば、ヘッダーにサイト全体の検索ボックスがあり、特定のページでは、サイトの狭いサイロ内を検索する2番目の検索ボックスなどがあります。
これは、各ボックスにgoogleで生成されたコードを使用すると、どちらも同じフォームIDを取得するため、正しく機能しません。これは明らかに無効です。これにより、グーグル透かしブランディングがボックス#2に表示されなくなり、また、ssパラメーター(検索セッション)など、一部の自動/グーグル生成変数が2番目のボックスに対しても生成されなくなります。
これで、検索自体が両方のボックスで機能します。たとえば、ユーザー検索は、正しい結果ページに移動し、正しい結果が表示されます。
私はこの問題を解決しようとしています:2番目のフォームに別のID値を取得させるにはどうすればよいですか(それでも正しく機能します-GoogleのJavaScriptがIDを検索するためcse-search-box
)のID属性とNAME属性に一意の識別子を追加しようとしました要素ですが、<form>
それによりgoogle.com javascriptが誤動作しました( `cse-search-box'のみを検索すると私は信じています)
コードは次のとおりです。
検索ボックス1:
<form id="cse-search-box" name="cse-search-box" class="search searchHeader" method="get" action="/search">
<input type="hidden" name="cx" value="partner-pub-0000000000000000:000" />
<input type="hidden" name="cof" value="FORID:10" />
<input type="hidden" name="ie" value="UTF-8" />
<input type="text" name="q" id="q" class="text_input" />
<input type="submit" name="sa" value="Search" class="submit" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script>
検索ボックス2:
<form id="cse-search-box" name="cse-search-box" class="search searchWebDirectory" method="get" action="/search">
<input type="hidden" name="cx" value="partner-pub-0000000000000000:111" />
<input type="hidden" name="cof" value="FORID:10" />
<input type="hidden" name="ie" value="UTF-8" />
<input type="text" name="q" id="q" class="text_input" />
<input type="submit" name="sa" value="Search" class="submit" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script>