2011-12-11 5 views
9

Je voudrais intégrer la barre de recherche Google dans mon site, et en utilisant le code par défaut par Google CSE-je:Google CSE dans la nouvelle fenêtre

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

Suivi par le style et le </div>

Mais je ne veux pas les résultats pour ouvrir sur la même page, je veux qu'ils ouvrent dans searchresults.htm qui a le conteneur div

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

si je mets sous cette forme:

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

ensuite le formulaire, il envoie à la page, mais ne marche pas lancer la recherche, mais si vous utilisez alors la barre Google sur la page, il exécute l'amende de recherche.

En gros, comment obtenez-vous la barre de google pour ouvrir la page de résultats?

Vive

Répondre

3

Lorsque vous construisez le code de votre Google CSE, l'un des aspects esthétiques et des options est « Deux pages » - ce qui vous permettra d'effectuer des recherches sur une page et d'afficher les résultats sur une autre . enter image description here

5

Pouvez-vous tester en mettant ce code?

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

entre cette ligne

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

et cette ligne

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

Ensuite, placez le code suivant dans 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 cela ne fonctionne pas vous peut simplement lire le documentation fourni par google. Vous obtiendrez l'information désirée dans la section Designing the Look and Feel with the Control Panel. Ou vous pouvez le trouver dans la section Designing the Look and Feel with XML. Je pense que vous cherchez une mise en page de deux pages.

Une autre option est d'aller à http://www.google.com/cse/manage/all et ensuite utiliser le panneau de contrôle pour personnaliser votre moteur de recherche comme vous le souhaitez.

13

Si vous passez à la dernière version de Google Code V2, vous pouvez y parvenir en modifiant le code que vous collez pour afficher les résultats.

<gcse:search></gcse:search> 

Remplacez cette

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

Pas évident de regarder la documentation Google (une histoire familière) mais vous pouvez le faire très simplement en utilisant le code v2 Custom Search b y sélectionner les 'résultats uniquement' option dans le 'look and feel' section:

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

Cliquez sur 'Enregistrer et obtenir le code' et coller dans votre page searchresults.htm.

Vous avez juste besoin de créer une boîte de recherche simple qui pointe vers cette page que vous pouvez mettre dans l'en-tête de votre page.

par exemple.

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

Le code V2 pour la recherche personnalisée (gratuit) ou Chercher (payant) vous offre une gamme d'options pour la recherche et l'affichage des résultats sur la même page ou d'avoir sa propre page de résultats.

Par défaut, cela ouvrira tous les liens de résultat dans un nouvel onglet ou une nouvelle fenêtre.

J'ai eu le problème où j'avais besoin que les résultats de recherche s'ouvrent sur le même onglet/fenêtre.

J'ajusté le code suivant

<gcse:search></gcse:search> 

à cette

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

Je suppose que si pour une raison quelconque, votre comportement par défaut ne s'ouvre dans un nouvel onglet/fenêtre et vous en avez besoin pour vous pourrait essayer ce qui suit

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

Espérons que cela aide.

Questions connexes