2013-03-23 91 views
3

我正試圖在同一頁面上實現兩個(不同的)Google CSE搜索框。問題是隻有第一個實例才能正常工作。例如,標題中的網站範圍搜索框,然後是特定頁面上的第二個搜索框,該搜索框在網站的狹窄筒倉內搜索等。同一頁面上多個Google CSE(自定義搜索引擎)框

這不能正常工作,因爲使用谷歌生成的代碼爲每個框,他們都獲得相同的表單ID,這顯然是無效的。這會導致谷歌水印品牌未能出現在方框#2中,並且一些auto/google生成的變量也無法爲第二個方框生成,例如ss參數(搜索會話)。

現在,搜索本身在兩個框中工作,例如,用戶搜索,以糾正結果頁面,並顯示正確的結果。

我只是想解決這個問題:我怎樣才能讓第二種形式獲得不同的ID值(並且仍然正常工作 - 正如谷歌的javascript尋找ID cse-search-box)我已經嘗試添加一個唯一的標識符在<form>元素的ID和NAME屬性,但是這引起了google.com JavaScript出現(因爲我相信它會查找`CSE-搜索框」只)

代碼如下:

搜索框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&amp;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&amp;lang=en"></script> 

回答

2

來自:http://www.google.com/cse/docs/cref.html

在名爲 「形式」/雞舍/ CSE /品牌參數輸出第一的getElementById中的代碼。因此,使用http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en將創建一個cse-search-box-目標代碼,同時給它box2將在不同的ID上觸發。保留關鍵字searchbox_demo。如果您想要:http://jsfiddle.net/JTV6f/1/。考慮到你在做什麼,但是,如果我是你,我會切換到V1或V2 API。

+0

了這是你要找的東西?有沒有其他方法可以幫助你或者澄清我的答案? – 2013-04-01 17:18:03

+0

正是我在找的東西。謝謝。 – GWR 2013-04-01 21:18:22

+0

不是問題!順便提一下CSE API。您可能會喜歡額外的自定義選項! – 2013-04-01 21:36:12

0

這是一個經過測試的解決方案。花了我一段時間,但我很慢,我一直不使用CSS。

使用V1代碼。當您在安裝屏幕上選擇獲取代碼時,V1代碼有一個選項。

把你的搜索代碼在一個div

div tag 

searchcode 

end div tag 

讓您的CSE的變量是唯一的。這將是代碼頂部的兩個地方。

div id='cse' 

和低一點

customSearchControl.draw('cse', options); 

每個搜索這些應該比其他搜索相同,但不同的。我用過cse0,cse1,cse2。

這將修復搜索,以便每個搜索都按指定方式工作,但它們仍會共享相同的CSS。

因此,用scoped屬性限定你的樣式。

style type='text/css' scoped 

爲每個搜索代碼執行此操作。現在,您的搜索可以有自己的外觀和感覺,顏色等

http://deltaboogie.com/search

感謝, 毛拉里

相關問題