API Programmable Search Element Control

Puoi incorporare i componenti del Motore di ricerca programmabile (caselle di ricerca e pagine dei risultati di ricerca) nelle tue pagine web e in altre applicazioni web utilizzando il markup HTML. Questi elementi del Motore di ricerca programmabile sono costituiti da componenti visualizzati in base alle impostazioni memorizzate dal server di Ricerca programmabile, insieme alle personalizzazioni apportate.

Tutto il codice JavaScript viene caricato in modo asincrono, il che consente alla pagina web di continuare a caricarsi mentre il browser recupera il codice JavaScript del Motore di ricerca programmabile.

Introduzione

Questo documento fornisce un modello di base per l'aggiunta di elementi di Motore di ricerca programmabile alla tua pagina web, insieme alle spiegazioni dei componenti configurabili dell'elemento e dell'API JavaScript flessibile.

Ambito

Questo documento descrive come utilizzare le funzioni e le proprietà specifiche dell'API Programmable Search Engine Control.

Compatibilità del browser

L'elenco dei browser supportati dal Motore di ricerca programmabile è disponibile qui.

Pubblico

Questa documentazione è destinata agli sviluppatori che vogliono aggiungere la funzionalità di Ricerca programmabile Google alle loro pagine.

Elementi di ricerca programmabile

Puoi utilizzare il markup HTML per aggiungere un elemento Ricerca programmabile alla tua pagina. Ogni elemento è costituito da almeno un componente: una casella di ricerca, un blocco di risultati di ricerca o entrambi. La casella di ricerca accetta l'input dell'utente in uno dei seguenti modi:

  • Una query di ricerca digitata nel campo di input di testo
  • Una stringa di query incorporata in un URL
  • Esecuzione programmatica

Inoltre, il blocco dei risultati di ricerca accetta input nei seguenti modi:

  • Una stringa di query incorporata in un URL
  • Esecuzione programmatica

Sono disponibili i seguenti tipi di elementi di Ricerca programmabile:

Tipo di elemento Componenti Descrizione
standard <div class="gcse-search"> Una casella di ricerca e i risultati di ricerca, visualizzati nello stesso <div>.
due colonne <div class="gcse-searchbox"> e <div class="gcse-searchresults"> Un layout a due colonne con i risultati di ricerca su un lato e una casella di ricerca sull'altro. Se prevedi di inserire più elementi in modalità a due colonne nella tua pagina web, puoi utilizzare l'attributo gname per accoppiare una casella di ricerca con un blocco di risultati di ricerca.
solo casella di ricerca <div class="gcse-searchbox-only"> Una casella di ricerca autonoma.
searchresults-only <div class="gcse-searchresults-only"> Un blocco autonomo di risultati di ricerca.

Puoi aggiungere alla tua pagina web tutti gli elementi di ricerca validi che vuoi. Per la modalità a due colonne, devono essere presenti tutti i componenti richiesti (una casella di ricerca e un blocco di risultati di ricerca).

Ecco un esempio di elemento di ricerca semplice:

<!-- Put the following javascript before the closing </head> tag
and replace 123456 with your own Programmable Search Engine ID. -->
<script async src="https://cse.google.com/cse.js?cx=123456"></script>

<!-- Place this tag where you want both of the search box and the search results to render -->
<div class="gcse-search"></div>

Comporre diverse opzioni di layout utilizzando gli elementi di ricerca programmabile

Nella pagina Layout e formattazione del pannello di controllo del Motore di ricerca programmabile sono disponibili le seguenti opzioni di layout. Ecco alcune linee guida generali sulla composizione delle opzioni di layout utilizzando gli elementi di ricerca programmabile. Per visualizzare una demo di una di queste opzioni, fai clic sul link.

Opzione Componenti
A tutta larghezza <div class="gcse-search">
Compatto <div class="gcse-search">
Due colonne <div class="gcse-searchbox">, <div class="gcse-searchresults">
Due pagine <div class="gcse-searchbox-only"> nella prima pagina, <div class="gcse-searchresults-only"> (o altri componenti) nella seconda pagina.
Solo risultati <div class="gcse-searchresults-only">
In hosting su Google <div class="gcse-searchbox-only">

Scopri di più sulle opzioni di layout.

Personalizzazione degli elementi di Ricerca programmabile

Per personalizzare i colori, il carattere o lo stile dei link, vai alla pagina Aspetto del tuo motore di ricerca programmabile.

Puoi utilizzare gli attributi facoltativi per sovrascrivere le configurazioni create nel pannello di controllo del Motore di ricerca programmabile. In questo modo, puoi creare un'esperienza di ricerca specifica per la pagina. Ad esempio, il seguente codice crea una casella di ricerca che apre una pagina dei risultati (http://www.example.com?search=lady+gaga) in una nuova finestra. Il valore dell'attributo queryParameterName, insieme alla stringa di query dell'utente, viene utilizzato per creare l'URL dei risultati.

Tieni presente che l'attributo queryParameterName è preceduto dal prefisso data-. Questo prefisso è obbligatorio per tutti gli attributi.

<div class="gcse-searchbox-only" data-resultsUrl="http://www.example.com" data-newWindow="true" data-queryParameterName="search">

Se hai utilizzato il pannello di controllo del motore di ricerca programmabile per attivare funzionalità come il completamento automatico o i perfezionamenti, puoi utilizzare gli attributi per personalizzare queste funzionalità. Qualsiasi personalizzazione specificata utilizzando questi attributi sostituirà le impostazioni effettuate nel pannello di controllo. L'esempio seguente crea un elemento di ricerca a due colonne con le seguenti funzionalità:

  • La gestione della cronologia è attivata
  • Il numero massimo di completamenti automatici visualizzati è impostato su 5
  • I miglioramenti vengono visualizzati come link.

<div class="gcse-searchbox" data-enableHistory="true" data-autoCompleteMaxCompletions="5">
<div class="gcse-searchresults" data-refinementStyle="link">

Attributi supportati

Attributo Tipo Descrizione Componente
Generali
gname Stringa (Facoltativo) Un nome per l'oggetto Elemento di ricerca. Un nome viene utilizzato per recuperare un componente associato per nome o per accoppiare un componente searchbox con un componente searchresults. Se non fornito, Motore di ricerca programmabile genererà automaticamente un gname, in base all'ordine dei componenti nella pagina web. Ad esempio, il primo searchbox-only senza nome ha gname "searchbox-only0" e il secondo ha gname "seachbox-only1" e così via. Tieni presente che il gname generato automaticamente per un componente nel layout a due colonne sarà two-column. L'esempio seguente utilizza gname storesearch per collegare un componente searchbox a un componente searchresults:
<div class="gcse-searchbox" data-gname="storesearch"></div>
<div class="gcse-searchresults" data-gname="storesearch"></div>

Quando recupera un oggetto, se più componenti hanno lo stesso gname, il Motore di ricerca programmabile utilizza l'ultimo componente della pagina.

Qualsiasi
autoSearchOnLoad Booleano Specifica se eseguire una ricerca in base alla query incorporata nell'URL della pagina che viene caricata. Tieni presente che nell'URL deve essere presente una stringa di query per eseguire la ricerca automatica. Valore predefinito: true. Qualsiasi
enableHistory Booleano Se true, attiva la gestione della cronologia per i pulsanti Indietro e Avanti del browser. Guarda una demo.

casella di ricerca

solo casella di ricerca

queryParameterName Stringa Il nome del parametro di query, ad esempio q (valore predefinito) o query. che verrà incorporato nell'URL (ad esempio, http://www.example.com?q=lady+gaga). Tieni presente che specificare solo il nome del parametro di ricerca non attiva la ricerca automatica al caricamento. Per eseguire la ricerca automatica, nell'URL deve essere presente una stringa di query. Qualsiasi
resultsUrl URL L'URL della pagina dei risultati. Il valore predefinito è la pagina ospitata da Google. solo casella di ricerca
newWindow Booleano Specifica se la pagina dei risultati si apre in una nuova finestra. Valore predefinito: false. solo casella di ricerca
ivt Booleano

Questo parametro consente di fornire un valore booleano che informa Google che desideri consentire gli annunci che utilizzano un cookie e un archivio locale solo per il traffico non valido sia per il traffico con consenso che per quello senza consenso.

true Quando questo parametro non è presente o lo imposti su "true", imposteremo un cookie solo per il traffico non valido e utilizzeremo lo spazio di archiviazione locale solo per il traffico con consenso.

false Se imposti questo parametro su "false", imposteremo un cookie solo per il traffico non valido e utilizzeremo lo spazio di archiviazione locale sia per il traffico con consenso che per quello senza consenso.

Valore predefinito: false

Esempi di utilizzo: <div class="gcse-search" data-ivt="true"></div>

searchresults

searchresults-only

mobileLayout Stringa

Specifica se gli stili di layout mobile devono essere utilizzati per i dispositivi mobili.

enabled Utilizza il layout mobile solo per i dispositivi mobili.

disabled Non utilizza il layout mobile per nessun dispositivo.

forced Utilizza il layout mobile per tutti i dispositivi.

Valore predefinito: enabled

Esempi di utilizzo: <div class="gcse-search" data-mobileLayout="disabled"></div>

Qualsiasi
Completamento automatico
enableAutoComplete Booleano Disponibile solo se il completamento automatico è stato attivato nel pannello di controllo del Motore di ricerca programmabile. true attiva il completamento automatico. Qualsiasi
autoCompleteMaxCompletions Numero intero Il numero massimo di completamenti automatici da visualizzare.

casella di ricerca

solo casella di ricerca

autoCompleteMaxPromotions Numero intero Il numero massimo di promozioni da visualizzare nel completamento automatico.

casella di ricerca

solo casella di ricerca

autoCompleteValidLanguages Stringa Elenco separato da virgole delle lingue per le quali deve essere attivato il completamento automatico. Lingue supportate.

casella di ricerca

solo casella di ricerca

Perfezionamenti
defaultToRefinement Stringa Disponibile solo se sono stati creati perfezionamenti nel pannello di controllo del Motore di ricerca programmabile. Specifica l'etichetta di perfezionamento predefinita da visualizzare.Nota: questo attributo non è supportato per il layout ospitato da Google. Qualsiasi
refinementStyle Stringa I valori accettabili sono tab (predefinito) e link. link è supportato solo se la ricerca immagini è disattivata o se la ricerca immagini è attivata, ma la ricerca web è disattivata.

searchresults

searchresults-only

Ricerca immagini
enableImageSearch Booleano Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Se true, attiva la ricerca immagini. I risultati delle immagini verranno mostrati in una scheda separata.

searchresults

searchresults-only

defaultToImageSearch Booleano Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Se true, la pagina dei risultati di ricerca mostrerà i risultati della ricerca di immagini per impostazione predefinita. I risultati web saranno disponibili in una scheda separata.

Qualsiasi
imageSearchLayout Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Specifica il layout della pagina dei risultati della ricerca di immagini. I valori accettabili sono classic, column o popup.

searchresults

searchresults-only

imageSearchResultSetSize Numero intero, stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Specifica la dimensione massima del set di risultati di ricerca per la ricerca di immagini. Ad esempio, large, small, filtered_cse, 10.

Qualsiasi
image_as_filetype Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Limita i risultati ai file con un'estensione specificata.

Le estensioni supportate sono jpg, gif, png, bmp, svg, webp, ico, raw.

Qualsiasi

image_as_oq Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Consente di filtrare i risultati di ricerca con l'operatore logico OR.

Esempio di utilizzo se vuoi risultati di ricerca che includano "term1" o "term2":<div class="gcse-search" data-image_as_oq="term1 term2"></div>

Qualsiasi

image_as_rights Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Filtri basati sulle licenze.

I valori supportati sono cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived e le loro combinazioni.

Vedi le combinazioni tipiche.

Qualsiasi

image_as_sitesearch Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Consente di limitare i risultati alle pagine da un sito specifico.

Esempi di utilizzo: <div class="gcse-search" data-image_as_sitesearch="example.com"></div>

Qualsiasi

image_colortype Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Limita la ricerca a immagini in bianco e nero (monocromatiche), in scala di grigi o a colori. I valori supportati sono mono, gray, color.

Qualsiasi

image_cr Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Consente di limitare i risultati di ricerca a documenti provenienti da un determinato paese.

Valori supportati

Qualsiasi

image_dominantcolor Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Limita la ricerca alle immagini di un colore dominante specifico. I valori supportati sono red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown.

Qualsiasi

image_filter Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Filtro automatico dei risultati di ricerca.

Valori supportati: 0/1

Esempi di utilizzo: <div class="gcse-search" data-image_filter="0"></div>

Qualsiasi

image_gl Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile. Migliora i risultati di ricerca il cui paese di origine corrisponde al valore del parametro.

Valori supportati

Qualsiasi

image_size Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Restituisce immagini di una dimensione specificata, dove la dimensione può essere una delle seguenti: icon, small, medium, large, xlarge, xxlarge o huge.

Qualsiasi

image_sort_by Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Consente di ordinare i risultati utilizzando dati o altri contenuti strutturati.

Per ordinare per pertinenza, utilizza una stringa vuota (image_sort_by="").

Esempi di utilizzo: <div class="gcse-search" data-image_sort_by="date"></div>

Qualsiasi

image_type Stringa Disponibile solo se la ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

Limita la ricerca a immagini di un tipo specifico. I valori supportati sono clipart (clip art), face (volti di persone), lineart (disegni), stock (foto stock), photo (fotografie) e animated (GIF animate).

Qualsiasi

Ricerca Google
disableWebSearch Booleano Se true, disattiva la ricerca web. Di solito viene utilizzato solo se la ricerca di immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.

searchresults

searchresults-only

webSearchQueryAddition Stringa Termini aggiuntivi aggiunti alla query di ricerca utilizzando l'operatore logico OR.

Esempi di utilizzo: <div class="gcse-search" data-webSearchQueryAddition="term1 term2"></div>

Qualsiasi
webSearchResultSetSize Numero intero, stringa La dimensione massima del set di risultati. Si applica sia alla ricerca di immagini sia alla ricerca web. Il valore predefinito dipende dal layout e se il Motore di ricerca programmabile è configurato per eseguire la ricerca in tutto il web o solo in siti specifici. I valori accettabili includono:
  • Un numero intero compreso tra 1 e 20
  • small: richiede un piccolo set di risultati, in genere 4 risultati per pagina.
  • large: richiede un ampio insieme di risultati, in genere 8 risultati per pagina.
  • filtered_cse: richieste fino a 10 risultati per pagina, per un massimo di 10 pagine o 100 risultati.
Qualsiasi
webSearchSafesearch Stringa Specifica se SafeSearch è attivato per i risultati della ricerca web. I valori accettati sono off e active. Qualsiasi
as_filetype Stringa Limita i risultati ai file con un'estensione specificata. Un elenco dei tipi di file indicizzabili da Google è disponibile nel Centro assistenza Search Console.

Qualsiasi

as_oq Stringa Consente di filtrare i risultati di ricerca con l'operatore logico OR.

Esempio di utilizzo se vuoi risultati di ricerca che includano "term1" o "term2":<div class="gcse-search" data-as_oq="term1 term2"></div>

Qualsiasi
as_rights Stringa Filtri basati sulle licenze.

I valori supportati sono cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived e le loro combinazioni.

Per le combinazioni tipiche, visita la pagina https://wiki.creativecommons.org/wiki/CC_Search_integration.

Qualsiasi

as_sitesearch Stringa Consente di limitare i risultati alle pagine da un sito specifico.

Esempi di utilizzo: <div class="gcse-search" data-as_sitesearch="example.com"></div>

Qualsiasi
cr Stringa Consente di limitare i risultati di ricerca a documenti provenienti da un determinato paese.

Valori supportati

Esempi di utilizzo: <div class="gcse-search" data-cr="countryFR"></div>

Qualsiasi
filter Stringa Filtro automatico dei risultati di ricerca.

Valori supportati: 0/1

Esempi di utilizzo: <div class="gcse-search" data-filter="0"></div>

Qualsiasi
gl Stringa Migliora i risultati di ricerca il cui paese di origine corrisponde al valore del parametro.

Questa opzione funziona solo in combinazione con l'impostazione valore lingua.

Valori supportati

Esempi di utilizzo: <div class="gcse-search" data-gl="fr"></div>

Qualsiasi
lr Stringa Consente di limitare i risultati di ricerca a documenti scritti in una determinata lingua.

Valori supportati

Esempi di utilizzo: <div class="gcse-search" data-lr="lang_fr"></div>

Qualsiasi
sort_by Stringa Consente di ordinare i risultati utilizzando dati o altri contenuti strutturati. Il valore dell'attributo deve essere una delle opzioni fornite nelle impostazioni di Ordinamento dei risultati del motore di ricerca programmabile.

Per ordinare in base alla pertinenza, utilizza una stringa vuota (sort_by="").

Esempi di utilizzo: <div class="gcse-search" data-sort_by="date"></div>

Qualsiasi
Risultati di ricerca
enableOrderBy Booleano Consente di ordinare i risultati per pertinenza, data o etichetta. Qualsiasi
linkTarget Stringa Imposta la destinazione del link. Valore predefinito: _blank.

searchresults

searchresults-only

noResultsString Stringa Specifica il testo predefinito da visualizzare quando nessun risultato corrisponde alla query. La stringa di risultato predefinita può essere utilizzata per visualizzare una stringa localizzata in tutte le lingue supportate, mentre quella personalizzata non può.

searchresults

searchresults-only

resultSetSize Numero intero, stringa La dimensione massima del set di risultati. Ad esempio, large, small, filtered_cse, 10. Il valore predefinito dipende dal layout e dal fatto che il motore sia configurato per eseguire la ricerca in tutto il web o solo in siti specifici. Qualsiasi
safeSearch Stringa Specifica se SafeSearch è attivato sia per la ricerca web sia per la ricerca di immagini. I valori accettati sono off e active. Qualsiasi

Callback

Diagramma di sequenza di richiamata
Diagramma di sequenza dei callback di JavaScript dell&#39;elemento di ricerca

I callback supportano il controllo dettagliato dell'inizializzazione dell'elemento di ricerca e dei processi di ricerca. Sono registrati con l'elemento di ricerca JavaScript tramite l'oggetto globale __gcse. Register Callbacks illustra la registrazione di tutti i callback supportati.

Registra callback

  window.__gcse = {
    parsetags: 'explicit', // Defaults to 'onload'
    initializationCallback: myInitializationCallback,
    searchCallbacks: {
      image: {
        starting: myImageSearchStartingCallback,
        ready: myImageResultsReadyCallback,
        rendered: myImageResultsRenderedCallback,
      },
      web: {
        starting: myWebSearchStartingCallback,
        ready: myWebResultsReadyCallback,
        rendered: myWebResultsRenderedCallback,
      },
    },
  };
  

Il callback di inizializzazione

Il callback di inizializzazione viene richiamato prima che il JavaScript dell'elemento di ricerca esegua il rendering degli elementi di ricerca nel DOM. Se parsetags è impostato su explicit in __gcse, il rendering degli elementi di ricerca viene lasciato al callback di inizializzazione (come mostrato in Registra callback). Potrebbe essere utilizzato per selezionare gli elementi da visualizzare o per posticipare il rendering degli elementi fino a quando non sono necessari. Può anche ignorare gli attributi degli elementi; ad esempio, può trasformare una casella di ricerca configurata tramite il pannello di controllo o gli attributi HTML in una casella di ricerca di immagini o specificare che le query inviate tramite un modulo del motore di ricerca programmabile vengono eseguite in un elemento solo risultati di ricerca. Guarda una demo.

Il ruolo del callback di inizializzazione è controllato dal valore della proprietà parsetags di __gcse.

  • Se il valore è onload, il codice JavaScript dell'elemento di ricerca esegue il rendering automatico di tutti gli elementi di ricerca nella pagina. Il callback di inizializzazione viene comunque richiamato, ma non è responsabile del rendering degli elementi di ricerca.
  • Se il valore è explicit, il codice JavaScript dell'elemento di ricerca non esegue il rendering degli elementi di ricerca. Il callback può eseguirli il rendering in modo selettivo utilizzando la funzione render() o eseguire il rendering di tutti gli elementi di ricerca con la funzione go().

Il seguente codice mostra come eseguire il rendering di una casella di ricerca, insieme ai risultati di ricerca, in un div, utilizzando il tag di analisi explicit e il callback di inizializzazione:

Esempio di callback di inizializzazione

Dobbiamo includere un <div> con un valore ID in cui inserire il codice dell'elemento di ricerca:

    <div id="test"></div>
Aggiungi questo JavaScript dopo <div>. Tieni presente che fa riferimento a test, il id che abbiamo utilizzato per identificare <div>
const myInitCallback = function() {
  if (document.readyState == 'complete') {
    // Document is ready when Search Element is initialized.
    // Render an element with both search box and search results in div with id 'test'.
    google.search.cse.element.render(
        {
          div: "test",
          tag: 'search'
         });
  } else {
    // Document is not ready yet, when Search Element is initialized.
    google.setOnLoadCallback(function() {
       // Render an element with both search box and search results in div with id 'test'.
        google.search.cse.element.render(
            {
              div: "test",
              tag: 'search'
            });
    }, true);
  }
};

// Insert it before the Search Element code snippet so the global properties like parsetags and callback
// are available when cse.js runs.
window.__gcse = {
  parsetags: 'explicit',
  initializationCallback: myInitCallback
};

Includi questo codice HTML per iniziare a caricare l'elemento di ricerca. Sostituisci il valore cx nella clausola src con il tuo cx.

<script async
  src="https://cse.google.com/cse.js?cx=000888210889775888983:y9tkcjel090"></script>

Cerca richiamate

Il JavaScript dell'elemento di ricerca supporta sei callback che operano nel flusso di controllo della ricerca. I callback di ricerca sono a coppie: un callback di ricerca web e un callback di ricerca immagini corrispondente:

  • Ricerca iniziale
    • Per la ricerca immagini
    • Per la ricerca sul web
  • Risultati pronti
    • Per la ricerca immagini
    • Per la ricerca sul web
  • Risultati visualizzati
    • Per la ricerca immagini
    • Per la ricerca sul web

Come il callback di inizializzazione,i callback di ricerca vengono configurati utilizzando le voci nell'oggetto __gcse. Ciò accade quando viene avviato il codice JavaScript dell'elemento di ricerca. Le modifiche apportate a __gcse dopo l'avvio vengono ignorate.

A ognuna di queste funzioni di callback viene passato gName per l'elemento di ricerca come argomento. Il gname è utile quando una pagina contiene più di una ricerca. Assegna a un elemento di ricerca i valori gname utilizzando l'attributo data-gname:

<div class="gcse-searchbox" data-gname="storesearch"></div>

Se l'HTML non identifica il nome, lo script JavaScript dell'elemento di ricerca genera un valore che rimarrà coerente finché l'HTML non verrà modificato.

Image/Web Search-Starting Callback

I callback di avvio della ricerca vengono richiamati immediatamente prima che il JavaScript dell'elemento di ricerca richieda i risultati di ricerca dal suo server. Un esempio di caso d'uso potrebbe essere l'utilizzo dell'ora locale del giorno per controllare le modifiche alla query.

searchStartingCallback(gname, query)
gname
Stringa identificativa dell'elemento di ricerca
query
Valore
inserito dall'utente (eventualmente modificato dal JavaScript dell'elemento di ricerca).

Il callback restituisce il valore da utilizzare come query per questa ricerca. Se restituisce una stringa vuota, il valore restituito viene ignorato e il chiamante utilizza la query non modificata.

In alternativa, puoi inserire la funzione di callback nell'oggetto __gcse o aggiungere dinamicamente il callback all'oggetto con JavaScript:

window.__gcse['searchCallbacks']['web']['starting'] = function(gname, query) {...};
Esempio di callback di avvio della ricerca

La ricerca di esempio che avvia il callback in Example Search Starting Callback aggiunge morning o afternoon alla query a seconda dell'ora del giorno.

Esempio di callback di ricerca iniziale
    const myWebSearchStartingCallback = (gname, query) => {
      const hour = new Date().getHours();
      return query + (hour < 12 ? ' morning' : ' afternoon');
    };
    window.myImageSearchStartingCallbackName = myWebSearchStartingCallback;

Installa questo callback in window.__gcse:

  window.__gcse || (window.__gcse = {});
    window.__gcse.searchCallbacks = {
      image: {
        starting: 'myImageSearchStartingCallbackName',
      },
      web: {
        starting: myWebSearchStartingCallback,
      },
    };
  
  <script
  async src="https://cse.google.com/cse.js?cx=000888210889775888983:y9tkcjel090"></script>
<div class="gcse-searchbox"></div>
<div class="gcse-searchresults"></div>

Callback pronto per i risultati di ricerca di immagini/web

Questi callback vengono richiamati immediatamente prima che il codice JavaScript dell'elemento di ricerca esegua il rendering delle promozioni e dei risultati. Un caso d'uso di esempio è un callback che esegue il rendering delle promozioni e dei risultati in uno stile che non può essere specificato con la normale personalizzazione.

resultsReadyCallback(gname, query, promos, results, div)
gname
Stringa identificativa dell'elemento di ricerca
query
query che ha prodotto questi risultati
promos
Un array di oggetti promozione, che corrispondono alle promozioni corrispondenti alla query dell'utente. Consulta la definizione dell'oggetto promozione.
results
un array di oggetti risultato. Consulta la definizione dell'oggetto risultato.
div
un div HTML posizionato nel DOM in cui l'elemento di ricerca inserirebbe normalmente promozioni e risultati di ricerca. Normalmente, il codice JavaScript dell'elemento di ricerca gestisce il riempimento di questo div, ma questo callback può scegliere di interrompere il rendering automatico dei risultati e utilizzare questo div per eseguire il rendering dei risultati.

Se questo callback restituisce un valore true, il codice JavaScript dell'elemento di ricerca passa al lavoro del piè di pagina.

Esempio di callback Risultati pronti

Il callback resultsReady di esempio in Example Results Ready Callback sostituisce la presentazione predefinita di promozioni e risultati con una sostituzione molto semplice.

Esempio di callback di risultati pronti
    const myResultsReadyCallback = function(name, q, promos, results, resultsDiv) {
      const makePromoElt = (promo) => {
        const anchor = document.createElement('a');
        anchor.href = promo['url'];
        anchor.target = '_blank';
        anchor.classList.add('gs-title');
        const span = document.createElement('span');
        span.innerHTML = 'Promo: ' + promo['title'];
        anchor.appendChild(span);
        return anchor;
      };
      const makeResultParts = (result) => {
        const anchor = document.createElement('a');
        anchor.href = result['url'];
        anchor.target = '_blank';
        anchor.classList.add('gs_title');
        anchor.appendChild(document.createTextNode(result['visibleUrl']));
        const span = document.createElement('span');
        span.innerHTML = ' ' + result['title'];
        return [anchor, span];
      };

      const table = document.createElement('table');
      if (promos) {
        for (const promo of promos) {
          const row = table.insertRow(-1);
          const cell = row.insertCell(-1);
          cell.appendChild(makePromoElt(promo));
        }
        resultsDiv.appendChild(table);
        resultsDiv.appendChild(document.createElement('br'));
      }
      if (results) {
        const table = document.createElement('table');
        for (const result of results) {
          const row = table.insertRow(-1);
          const cell = row.insertCell(-1);
          const [anchor, span] = makeResultParts(result);
          cell.appendChild(anchor);
          const cell2 = row.insertCell(-1);
          cell2.appendChild(span);
        }
        resultsDiv.appendChild(table);
      }
      return true;
    };

Installa questo callback in window.__gcse:

  window.__gcse || (window.__gcse = {});
    window.__gcse.searchCallbacks = {
      web: {
        ready: myResultsReadyCallback,
      },
    };
  <script async
  src="https://cse.google.com/cse.js?cx=000888210889775888983:y9tkcjel090"></script>
<div class="gcse-searchbox"></div>
<div class="gcse-searchresults"></div>

Come per il callback di avvio della ricerca, quello riportato sopra è uno dei tanti modi per inserire il callback nell'oggetto __gcse.

Image/Web Search Results-Rendered Callback

Questi callback vengono richiamati immediatamente prima che il JavaScript dell'elemento di ricerca esegua il rendering del piè di pagina della pagina. Esempi di casi d'uso includono un callback che aggiunge contenuti dei risultati che l'elemento di ricerca non visualizza, ad esempio una casella di controllo Salva o informazioni che non vengono visualizzate automaticamente, oppure un callback che aggiunge pulsanti Per saperne di più.

Se un callback di rendering dei risultati ha bisogno di informazioni che si trovavano nei parametri promos e results del callback di disponibilità dei risultati, può passarle tra loro, in questo modo:

callback(gname, query, promoElts, resultElts);
gname
Stringa identificativa dell'elemento di ricerca
query
stringa di ricerca.
promoElts
Un array degli elementi DOM contenenti promozioni.
resultElts
un array degli elementi DOM contenenti i risultati.

Non è presente alcun valore restituito.

Esempio di callback di rendering dei risultati

Il callback resultsRendered di esempio in Example Results Rendered Callback aggiunge una casella di controllo Keep fittizia a ogni promozione e risultato.

Esempio di callback di rendering dei risultati
myWebResultsRenderedCallback = function(name, q, promos, results) {
    for (const div of promos.concat(results)) {
      const innerDiv = document.createElement('div');
      innerDiv.appendChild(document.createTextNode('Keep: '));
      const checkBox = document.createElement('input');
      checkBox.type = 'checkbox';
      checkBox.name = 'save';
      innerDiv.appendChild(checkBox);
      div.insertAdjacentElement('afterbegin', innerDiv);
    }
  };

Installa questo callback in window.__gcse:

window.__gcse || (window.__gcse = {});
window.__gcse.searchCallbacks = {
  web: {
    rendered: 'myWebResultsRenderedCallback',
  },
};
  <script async
    src="https://cse.google.com/cse.js?cx=000888210889775888983:y9tkcjel090"></script>
<div class="gcse-searchbox"></div>
<div class="gcse-searchresults"></div>

Se il callback dei risultati di rendering ha bisogno di informazioni passate al callback dei risultati pronti, può passare questi dati tra i callback. L'esempio seguente mostra uno dei tanti modi per passare un valore di valutazione da richSnippet dal callback dei risultati pronti al callback dei risultati visualizzati.

Esempio di richiamata Risultati pronti che collabora con la richiamata Risultati visualizzati
const makeTwoPartCallback = () => {
  let saveForRenderCallback;
  const readyCallback = (name, q, promos, results, resultsDiv) =>
  {
    saveForRenderCallback = [];
    for (const result of results) {
      const {
        richSnippet: {
          answer = []
        } = {},
      } = result;
      const firstAnswer = answer[0];
      if (firstAnswer) {
        const upVotes = firstAnswer['upvotecount'];
        if (upVotes) {
          saveForRenderCallback.push(
            {upvotes: parseInt(upVotes, 10)}
          );
          continue;
        }
      }
      saveForRenderCallback.push({});
    }
  };
  const renderedCallback = (name, q, promos, results) => {
    for (let i = 0; i < results.length; ++i) {
      const div = results[i];
      const votes = saveForRenderCallback[i]['upvotes'];
      if (votes) {
        const innerDiv = document.createElement('div');
        innerDiv.innerHTML = '<b>Upvotes: ' + votes + '</b>';
         div.insertAdjacentElement('afterbegin', innerDiv);
      }
    }
  };
  return {readyCallback, renderedCallback};
};
Installa questo callback utilizzando un codice simile a questo durante la configurazione di __gcse:
const {
  readyCallback: webResultsReadyCallback,
  renderedCallback: webResultsRenderedCallback,
} = makeTwoPartCallback();
window.__gcse || (window.__gcse = {});
window.__gcse.searchCallbacks = {
  web: {
    ready: webResultsReadyCallback,
    rendered: webResultsRenderedCallback,
  },
};
  <script async
  src="https://cse.google.com/cse.js?cx=000888210889775888983:kdroeu4mwju"></script>
<div class="gcse-searchbox"></div>
<div class="gcse-searchresults"></div>
Esempio di callback di rendering dei risultati: apertura di tipi di file specifici in una nuova scheda/finestra

Il seguente esempio di callback può modificare i link dei risultati di ricerca dopo il rendering per aprire un file specifico in una nuova scheda/pagina anziché nella finestra corrente (ad esempio PDF, Excel o Word). In questo modo, l'esperienza di navigazione migliora quando gli utenti non vogliono aprire un file nella stessa finestra e allontanarsi dalla pagina dei risultati.

Questo esempio di callback identifica i link PDF nei risultati di ricerca e imposta l'attributo target="_blank" sui link PDF in modo che si aprano in una nuova scheda. Un MutationObserver viene utilizzato per gestire dinamicamente i nuovi risultati se la pagina viene aggiornata. Nota:puoi sostituire .pdf in handleSearchResults con qualsiasi altro tipo di file in base alle tue esigenze.

Questo esempio di callback non funziona nei layout Google Hosted e Overlay.

Apertura di tipi di file specifici in una nuova scheda/finestra
function handleSearchResults() {
  const links = document.querySelectorAll('.gsc-results .gs-title');
  links.forEach(link => {
    const url = link.href;
    if (url?.toLowerCase().endsWith('.pdf')) {
      link.setAttribute('target', '_blank');
    }
  });
}

const myWebResultsRenderedCallback = () => {
  // Call handleSearchResults when results are rendered
  handleSearchResults();
  // Set up a MutationObserver to handle subsequent updates to the results
  const observer = new MutationObserver(handleSearchResults);
  const searchResultsContainer = document.querySelector('.gsc-results');
  if (searchResultsContainer) {
    observer.observe(searchResultsContainer, {
      childList: true,
      subtree: true
    });
  } else {
    console.log('No Results.');
  }
};

Installa questo callback in window.__gcse:

window.__gcse || (window.__gcse = {});
window.__gcse.searchCallbacks = {
  web: {
    rendered: myWebResultsRenderedCallback,
  },
};
  <script async
    src="https://cse.google.com/cse.js?cx=000888210889775888983:y9tkcjel090"></script>
<div class="gcse-searchbox"></div>
<div class="gcse-searchresults"></div>

Altri esempi di callback

Altri esempi di callback sono disponibili nel documento Altri esempi di callback.

Proprietà di promozione e risultati

Utilizzando la notazione JSDoc, queste sono le proprietà degli oggetti promotion e result. Qui sono elencate tutte le proprietà che potrebbero essere presenti. La presenza di molte proprietà dipende dai dettagli della promozione o del risultato di ricerca.

Proprietà della promozione
{
  content: string,
  image: {
    height: number,
    url: string,
    width: number,
  },
  title: string,
  url: string,
  visibleUrl: string,
}
Proprietà oggetto risultato
{
  content: string,
  contentNoFormatting: string,
  contextUrl: string, // For image search results only
  fileFormat: string,
  image: { // For image search reseults only
    height: number,
    url: string,
    width: number,
  },
  perResultLabels: !Array<{
    anchor: string,
    label: string,
    labelWithOp: string,
  }>,
  richSnippet: !Array<!Object>, // For web search results only
  thumbnailImage: {
    height: number,
    url: string,
    width: number,
  },
  title: string,
  titleNoFormatting: string,
  url: string,
  visibleUrl: string,
}

richSnippet in results ha il tipo libero di un array di oggetti. I valori delle voci di questo array sono controllati dai dati strutturati trovati nella pagina web per ogni risultato di ricerca. Ad esempio, un sito web di recensioni potrebbe includere dati strutturati che aggiungono questa voce dell'array a richSnippet:

'review': {
  'ratingstars': '3.0',
  'ratingcount': '1024',
},

API Programmable Search Element Control (V2)

L'oggetto google.search.cse.element pubblica le seguenti funzioni statiche:

Funzione Descrizione
.render(componentConfig, opt_componentConfig) Visualizza un elemento di ricerca.

Parametri

Nome Descrizione
componentConfig La configurazione di un componente Programmable Search Element. Specifica quanto segue:
  • div (stringa|elemento): il id dell'<div> o dell'elemento div in cui deve essere eseguito il rendering dell'elemento di ricerca programmabile.
  • tag (stringa): il tipo di componente o componenti da eseguire il rendering. (Se viene fornito opt_componentConfig, il valore dell'attributo tag deve essere searchbox.) I valori consentiti sono:
    • search: una casella di ricerca e i risultati di ricerca, visualizzati insieme
    • searchbox: un componente casella di ricerca di un elemento di ricerca programmabile.
    • searchbox-only: una casella di ricerca autonoma, che verrà abbinata a un blocco di risultati di ricerca specificato da opt_componentConfig in un layout a due colonne.
    • searchresults-only: Un blocco autonomo di risultati di ricerca. Le ricerche vengono attivate da un parametro di query incorporato in un URL o dall'esecuzione programmatica.
  • gname (stringa): (facoltativo) un nome univoco per questo componente. Se non fornito, il Motore di ricerca programmabile genererà automaticamente un gname.
  • attributes (oggetto): attributi facoltativi sotto forma di coppia chiave-valore. Attributi supportati.
opt_componentConfig Facoltativo. Secondo argomento di configurazione del componente. Utilizzato in modalità TWO_COLUMN per fornire il componente searchresults. Specifica quanto segue:
  • div (stringa): il id di <div> o l'elemento div in cui deve essere eseguito il rendering dell'elemento.
  • tag (stringa): il tipo di componente o componenti da eseguire il rendering. Quando viene fornito opt_componentConfig, il valore dell'attributo tag deve essere searchresults. Inoltre, il valore dell'attributo tag di componentConfig deve essere searchbox.
  • gname (stringa): (facoltativo) un nome univoco per questo componente. Se non fornito, il Motore di ricerca programmabile genererà automaticamente un gname per questo componente. Se fornito, deve corrispondere a gname in componentConfig.
  • attributes (Oggetto): attributi facoltativi sotto forma di coppia chiave:valore. Attributi supportati.
.go(opt_container) Esegue il rendering di tutti i tag/classi dell'elemento di ricerca nel contenitore specificato.

Parametri

Nome Descrizione
opt_container Il contenitore contenente i componenti dell'elemento di ricerca da visualizzare. Specifica l'ID del contenitore (stringa) o l'elemento stesso. Se omesso, verranno visualizzati tutti i componenti dell'elemento di ricerca programmabile all'interno del tag body della pagina.
.getElement(gname) Recupera l'oggetto dell'elemento in base a gname. Se non viene trovato, restituisci un valore nullo.

L'oggetto element restituito ha i seguenti attributi:

  • gname: il nome dell'oggetto elemento. Se non fornito, il Motore di ricerca programmabile genererà automaticamente un gname per l'oggetto. Scopri di più.
  • type: Il tipo di elemento.
  • uiOptions: gli attributi finali utilizzati per il rendering dell'elemento.
  • execute - function(string): esegue una query programmatica.
  • prefillQuery - function(string): precompila la casella di ricerca con una stringa di query senza eseguire la query.
  • getInputQuery - function(): restituisce il valore corrente visualizzato nella casella di input.
  • clearAllResults - function(): Clears the control by hiding everything but the search box, if any.

Il seguente codice esegue la query "news" nell'elemento di ricerca "element1":

var element = google.search.cse.element.getElement('element1');
            element.execute('news');
.getAllElements() Restituisce una mappa di tutti gli oggetti elemento creati correttamente, con chiave gname.