Sono stato incaricato di aggiungere GCS a un sito Web. Dopo aver seguito le istruzioni per creare il mio GCS gratuito (http://www.google.com/cse/sitesearch/create) e incollato lo snippet fornito nella posizione appropriata, i componenti del pulsante di ricerca & rendono OK e l'utente è in grado di inserire una stringa di ricerca, eseguire la ricerca e vedere i risultati . Fin qui tutto bene.Come ottenere la Ricerca personalizzata Google (V2) da eseguire immediatamente con una stringa di ricerca precaricata?
Tuttavia, quando i componenti eseguono il rendering per la prima volta, desidero essere in grado di passare una stringa pre-inserita nella casella e programmare la ricerca immediatamente eseguita. Questo bit non funziona.
Il codice ho attualmente in essere è la seguente, costituito dal frammento di dotazione più alcuni codice aggiuntivo derivato dalla mia lettura del Custom Search Element controllo API doc (https://developers.google.com/custom-search/docs/element) e destinato ad attuare il 'eseguire immediato':
<div class="content-container">
<script type="text/javascript">
(function() {
var cx = '(my search id)';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<gcse:search> gname="2DSearch"</gcse:search>
<script type="text/javascript">
var element = google.search.cse.element.getElement("2DSearch");
element.prefillQuery(primarySearch);
element.execute(primarySearch);
</script>
</div>
primarySearch è la stringa su cui si desidera eseguire automaticamente la ricerca. Quando i componenti vengono visualizzati, la stringa 'gname = "2DSearch"' appare brevemente e poi scompare di nuovo poco prima che compaiano i componenti di ricerca, quindi non accade nient'altro.
Sembra che ci siano alcune somiglianze qui con questa domanda (senza risposta): https://stackoverflow.com/questions/15871911/passing-optional-search-parameters-into-google-custom-search-query
Ho cercato sul web invano un numero di ore per qualsiasi altra cosa rilevante.
Qualcuno può dirmi perché non funziona e/o cosa devo fare?
Le mie scuse, ho fatto un sacco di programmazioni ma sono praticamente analfabeta quando si tratta di HTML & javascript. Grazie Jim
ho scoperto che la console Chrome sta mostrando il seguente errore: Uncaught ReferenceError: Google non è definito
Il mio codice ora assomiglia a questo:
<div class="content-container">
<script type="text/javascript">
(function() {
var cx = '013736134253840884188:fxsx6zqql_y';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
</div>
<div class="gcse-search" data-gname="2DSearch"></div>
<div class="content-container">
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
var element = google.search.cse.element.getElement("2DSearch");
element.prefillQuery(primarySearch);
element.execute(primarySearch);
</script>
</div>
Nella console di nuovo Ora vedo anche quanto segue:
XMLHttpRequest non può caricare (inserire qui il link jsapi sopra che non sono autorizzato a postare). Origin (inserire qui l'URL per il mio localhost) non è consentito da Access-Control-Allow-Origin.
Ci sono numerosi riferimenti a errori simili a questo in tutta la rete, ognuno leggermente diverso, con soluzioni proposte che fanno riferimento a JSON, JQUERY, AJAX ecc., Ma nulla di quello che ho trovato sembra direttamente rilevante per quello che ho sto cercando di fare (cioè rendere disponibile al mio codice il file o la libreria in cui è definito 'google'), e nulla di ciò che ho provato ha funzionato.
Parlare cercando di trovare la strada attraverso una miniera di carbone con una candela ... :) Acclamazioni
ho copiato questo che funziona ma non visualizza la casella di ricerca? più semplicemente vengono visualizzati solo i risultati della ricerca. – shorif2000
prova a cambiare "searchresults-only" in "search" –