Zostałem poproszony o dodanie GCS do strony internetowej. Po wykonaniu instrukcji tworzenia bezpłatnego GCS (http://www.google.com/cse/sitesearch/create) i wklejeniu dostarczonego fragmentu w odpowiednie miejsce, elementy przycisku wyszukiwania & renderują OK, a użytkownik może wprowadzić ciąg wyszukiwania, uruchomić wyszukiwanie i zobaczyć wyniki . Jak na razie dobrze.Jak od razu uruchomić Google Custom Search (V2) za pomocą wcześniej załadowanego ciągu wyszukiwania?
Jednak gdy składniki czynią po raz pierwszy chcę być w stanie przejść wcześniej wpisany ciąg znaków w polu i programowo mają przeszukiwanie wykonywane natychmiast. Ten bit nie działa.
Kod, który obecnie mam na miejscu, jest następujący, składający się z dostarczonego fragmentu plus dodatkowy kod wywodzący się z mojego odczytu Doc dokumentu API kontroli wyszukiwania niestandardowego (https://developers.google.com/custom-search/docs/element) i przeznaczony do wdrożenia "wykonania natychmiastowego":
<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 to ciąg, który chcę automatycznie wyszukać. Po wyrenderowaniu składników krótko pojawia się ciąg "gname =" 2DSearch "", a następnie znika ponownie tuż przed pojawieniem się składników wyszukiwania, a następnie nic się nie dzieje.
Pojawiają się tu pewne podobieństwa z tym pytaniem (bez odpowiedzi): https://stackoverflow.com/questions/15871911/passing-optional-search-parameters-into-google-custom-search-query
Szukałem w internecie na próżno na kilka godzin do niczego innego właściwego.
Czy ktoś może mi powiedzieć, dlaczego to nie działa i/lub co muszę zrobić?
Moje przeprosiny, zrobiłem dużo programowania, ale jestem praktycznie analfabetą jeśli chodzi o HTML & javascript. Dzięki Jim
odkryłem, że konsola Chrome pokazuje następujący błąd: Uncaught ReferenceError: Google nie jest zdefiniowana
Mój kod wygląda teraz tak:
<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>
W konsoli ponownie jestem teraz też widząc, co następuje:
XMLHttpRequest nie może załadować (tu wstawić odnośnik JSAPI powyżej, że nie wolno mi odpowiedzieć). Pochodzenie (wstaw tutaj adres URL mojego hosta lokalnego) jest niedozwolone w programie Access-Control-Allow-Origin.
Istnieje wiele odniesień do podobnych błędów w całej sieci, każda nieco inna, z proponowanymi rozwiązaniami odnoszącymi się do JSON, JQUERY, AJAX etc.etc., Ale nic, co znalazłem wydaje się być bezpośrednio związane z tym, co ja próbuję zrobić (tj. udostępnić mojemu kodowi plik lub bibliotekę, w której zdefiniowano "google"), a nic, co próbowałem, nie zadziałało.
Dyskusja o próbując znaleźć drogę poprzez kopalni ze świecą ... :) Cheers
Skopiowałem to, które działa, ale nie wyświetla pola wyszukiwania? wyświetlane są tylko wyniki wyszukiwania. – shorif2000
spróbuj zmienić "tylko wyniki wyszukiwania" na "szukaj" –