2011-12-11 24 views
9

me gustaría integrar la barra de búsqueda de Google en mi sitio, y utilizando el código predeterminado por Google CSE tengo:Google CSE abre en una nueva ventana

 <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); 

Seguido por el estilo y la </div>

Pero no quieren que los resultados se abran en la misma página, quiero que se abran en searchresults.htm que tiene el contenedor div

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

si pongo en esta 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> 

A continuación, el formulario lo envía a la página pero tampoco de la búsqueda, pero si a continuación, utiliza la barra de Google en la página, se ejecuta la multa búsqueda.

Básicamente, ¿cómo se obtiene la barra de google para abrir la página de resultados?

Saludos

Respuesta

3

Cuando usted está construyendo el código para su Google CSE, una de la apariencia opciones es "Dos Página" - que le permitirá realizar una búsqueda en una página, y mostrar los resultados en otra . enter image description here

5

¿Se puede probar poniendo este código?

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

entre esta línea

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

y esta línea

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

a continuación, poner el siguiente código en 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> 

Si esto no le funciona simplemente puede leer el documentation proporcionado por google. Obtendrá la información que desee en la sección Designing the Look and Feel with the Control Panel. O puede encontrarlo en la sección Designing the Look and Feel with XML. Creo que estás buscando un diseño de dos páginas.

Otra opción es ir al http://www.google.com/cse/manage/all y luego usar el panel de control allí para personalizar su motor de búsqueda como lo desee.

13

Si actualiza a la última versión de Google Code V2, puede lograrlo editando el código que pega para mostrar los resultados.

<gcse:search></gcse:search> 

Cambiar esto a

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

obvia de mirar la documentación de Google (una historia familiar) pero puedes hacerlo de manera muy simple usando el código de búsqueda personalizada v2 b y la selección de los 'Resultados única' opción en el 'Look and Feel' sección:

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

clic en 'Guardar y obtener el código' y pegarlo en su página searchresults.htm.

Ahora solo necesita crear un cuadro de búsqueda simple que apunta a esa página que puede colocar en el encabezado de su página.

p. Ej.

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

El código V2 para la búsqueda personalizada (libre) o en el sitio Buscar (pagado) le ofrece una gama de opciones para la búsqueda y mostrar los resultados en la misma página o tener su propia página de resultados.

De forma predeterminada, esto abrirá todos los enlaces de resultados en una nueva pestaña o ventana.

Tuve el problema donde necesitaba que los resultados de búsqueda se abrieran en la misma pestaña/ventana.

ajusté el siguiente código

<gcse:search></gcse:search> 

a este

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

supongo que si por alguna razón su comportamiento por defecto no se abre en una nueva pestaña/ventana y luego lo necesita para que podría intentar lo siguiente

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

Espero que esto ayude.

Cuestiones relacionadas