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
|
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.
Valore predefinito: Esempi di utilizzo: |
searchresults searchresults-only |
mobileLayout |
Stringa |
Specifica se gli stili di layout mobile devono essere utilizzati per i dispositivi mobili.
Valore predefinito: Esempi di utilizzo: |
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 |
searchresults searchresults-only |
defaultToImageSearch |
Booleano | Disponibile solo se la
ricerca immagini è stata attivata nel pannello di controllo del Motore di ricerca programmabile.
Se |
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 |
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, |
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 | 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": | 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 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: | 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 | 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. | 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 | 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: | 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. | 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: | 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: | 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 | 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: |
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:
|
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": |
Qualsiasi |
as_rights |
Stringa | Filtri basati sulle licenze.
I valori supportati sono 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: |
Qualsiasi |
cr |
Stringa | Consente di limitare i risultati di ricerca a documenti provenienti da un determinato paese.
Esempi di utilizzo: |
Qualsiasi |
filter |
Stringa | Filtro automatico dei risultati di ricerca.
Valori supportati: 0/1 Esempi di utilizzo: |
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. Esempi di utilizzo: |
Qualsiasi |
lr |
Stringa | Consente di limitare i risultati di ricerca a documenti scritti in una determinata lingua.
Esempi di utilizzo: |
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: |
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
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.
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 funzionerender()o eseguire il rendering di tutti gli elementi di ricerca con la funzionego().
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:
Dobbiamo includere un <div> con un valore ID
in cui inserire il codice dell'elemento di ricerca:
<div id="test"></div><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.
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
divper 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.
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.
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.
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};
};__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.
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.
{
content: string,
image: {
height: number,
url: string,
width: number,
},
title: string,
url: string,
visibleUrl: string,
}{
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
|
||||||
.go(opt_container) |
Esegue il rendering di tutti i tag/classi dell'elemento di ricerca nel contenitore specificato.
Parametri
|
||||||
.getElement(gname) |
Recupera l'oggetto dell'elemento in base a gname. Se non viene trovato, restituisci un valore nullo.
L'oggetto
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. |