2011-12-11 5 views
9

Vorrei integrare la barra di ricerca di Google nel mio sito, e utilizzando il codice di default da parte di Google CSE ho:Google CSE apre in una nuova finestra

 <div id="cse-search-form" style="width: 100%;">Loading</div> 
<script src="https://www.google.com/jsapi" type="text/javascript"></script> 
<script type="text/javascript"> 
    google.load('search', '1', {language : 'en'}); 
    google.setOnLoadCallback(function() { 
    var customSearchOptions = {}; 

    var imageSearchOptions = {}; 
    imageSearchOptions['layout'] = google.search.ImageSearch.LAYOUT_POPUP; 
    customSearchOptions['enableImageSearch'] = true; 
    customSearchOptions['imageSearchOptions'] = imageSearchOptions; 

    var customSearchControl = new google.search.CustomSearchControl(
     '003243520079760326318:WMX-1462312306', customSearchOptions); 

    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET); 
    var options = new google.search.DrawOptions(); 
    options.setSearchFormRoot('cse-search-form'); 
    options.setAutoComplete(true); 
    customSearchControl.draw('shop.htm/cse', options); 
    }, true); 

Seguita dallo stile e il </div>

Ma io non voglio i risultati per aprire sulla stessa pagina, voglio loro di aprire in searchresults.htm che ha il div contenitore

<div id="cse" style="width:100%;"></div> 

se ho messo in questa forma:

<form action="http://www.amberantiques.com/searchresults.htm" id="cse-search-box"> 
    <fieldset style="border:none;"> 
     <input type="hidden" name="cx" value="003243520079760326318:WMX-1462312306" /> 
     <input type="hidden" name="ie" value="UTF-8" /> 
     <input type="text" name="q" size="31" /> 
     <input type="submit" name="sa" value="Search" /> 
    </fieldset> 
</form> 

Poi il modulo lo invia alla pagina, ma doesnt eseguire la ricerca, ma se poi utilizza la barra di Google nella pagina, si corre il bene di ricerca.

In pratica, come si ottiene la barra di Google per aprire la pagina dei risultati?

Acclamazioni

risposta

3

Quando si sta costruendo il codice per Google CSE, uno dei Look and Feel opzioni è "Two pagina" - che vi permetterà di cercare in una sola pagina, e visualizzare i risultati su un altro . enter image description here

5

Potete testare mettendo questo codice?

options.enableSearchboxOnly("http://www.amberantiques.com/searchresults.htm"); 

tra questa linea

var options = new google.search.DrawOptions(); 

e questa linea

options.setSearchFormRoot('cse-search-form'); 

quindi inserire il seguente codice nel searchresults.htm

<div id="cse" style="width: 100%;">Loading</div> 
<script src="http://www.google.com/jsapi" type="text/javascript"></script> 
<script type="text/javascript"> 
    function parseQueryFromUrl() { 
    var queryParamName = "q"; 
    var search = window.location.search.substr(1); 
    var parts = search.split('&'); 
    for (var i = 0; i < parts.length; i++) { 
     var keyvaluepair = parts[i].split('='); 
     if (decodeURIComponent(keyvaluepair[0]) == queryParamName) { 
      return decodeURIComponent(keyvaluepair[1].replace(/\+/g, ' ')); 
     } 
    } 
    return ''; 
} 

google.load('search', '1', {language : 'en'}); 
google.setOnLoadCallback(function() { 
    var customSearchControl = new google.search.CustomSearchControl(
    '003243520079760326318:WMX-1462312306', customSearchOptions); 

    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET); 
    customSearchControl.draw('cse'); 
    var queryFromUrl = parseQueryFromUrl(); 
    if (queryFromUrl) { 
     customSearchControl.execute(queryFromUrl); 
    } 
}, true); 
</script> 

Se questo non vi funziona può semplicemente leggere il documentation fornito da google. Otterrai le informazioni desiderate nella sezione Designing the Look and Feel with the Control Panel. Oppure puoi trovarlo nella sezione Designing the Look and Feel with XML. Penso che tu stia cercando un layout di due pagine.

Un'altra opzione è quella di andare a http://www.google.com/cse/manage/all e quindi utilizzare il pannello di controllo lì per personalizzare il tuo motore di ricerca come desideri.

13

Se esegui l'aggiornamento all'ultima versione di Google Code V2, puoi ottenere questo risultato modificando il codice che incollerai per mostrare i risultati.

<gcse:search></gcse:search> 

Cambiare questo per

<gcse:search linktarget="_parent"></gcse:search> 
0

non evidente dal guardare la documentazione di Google (una storia familiare) ma puoi farlo semplicemente usando il codice di ricerca personalizzata v2 b y selezionando il Solo i risultati 'opzione nel 'look and feel' sezione:

Look and feel selection screen with 'Results only' thumbnail selected

Fare clic su 'Salva e ottieni codice' e incollare nella tua pagina searchresults.htm.

Ora è sufficiente creare una casella di ricerca semplice che punta a quella pagina che è possibile inserire nell'intestazione della pagina.

ad es.

<form action="http://www.amberantiques.com/searchresults.htm"> 
<input type="search" name="q"/> 
<input type="submit" value="Go"/> 
</form> 
2

Il codice V2 per la ricerca personalizzata (gratuito) o Site Search (a pagamento) ti dà una serie di opzioni per la ricerca e la visualizzazione dei risultati sulla stessa pagina o avendo esso la propria pagina dei risultati.

Per impostazione predefinita, questo aprirà tutti i collegamenti dei risultati in una nuova scheda o finestra.

Avevo il problema in cui avevo bisogno che i risultati della ricerca si aprissero sulla stessa scheda/finestra.

ho regolato il seguente codice

<gcse:search></gcse:search> 

a questo

<gcse:search linktarget="_self"></gcse:search> 

Credo che se per qualche motivo il vostro comportamento di default non si apre in una nuova scheda/finestra e avete bisogno di allora potrebbe provare il seguente

<gcse:search linktarget="_blank"></gcse:search> 

Spero che questo aiuti.