Programmable Search Element Control API

Komponenty Wyszukiwarki niestandardowej (pola wyszukiwania i strony wyników wyszukiwania) możesz umieszczać na stronach internetowych i w innych aplikacjach internetowych za pomocą znaczników HTML. Elementy Wyszukiwarki niestandardowej składają się z komponentów renderowanych na podstawie ustawień przechowywanych przez serwer Wyszukiwarki niestandardowej oraz wprowadzonych przez Ciebie zmian.

Cały kod JavaScript jest wczytywany asynchronicznie, co umożliwia dalsze wczytywanie strony internetowej, podczas gdy przeglądarka pobiera kod JavaScript Wyszukiwarki niestandardowej.

Wprowadzenie

W tym dokumencie znajdziesz podstawowy model dodawania elementów wyszukiwarki programowalnej do strony internetowej oraz wyjaśnienia dotyczące konfigurowalnych komponentów elementu i elastycznego interfejsu JavaScript API.

Zakres

W tym dokumencie opisujemy, jak używać funkcji i właściwości specyficznych dla interfejsu API elementu sterującego wyszukiwarki programowalnej.

Zgodność z przeglądarką

Listę przeglądarek obsługiwanych przez Wyszukiwarkę niestandardową znajdziesz tutaj.

Odbiorcy

Ta dokumentacja jest przeznaczona dla programistów, którzy chcą dodać do swoich stron funkcje Wyszukiwarki niestandardowej Google.

Elementy Wyszukiwarki niestandardowej

Aby dodać element Wyszukiwarki niestandardowej do strony, możesz użyć znaczników HTML. Każdy element składa się z co najmniej 1 komponentu: pola wyszukiwania, bloku wyników wyszukiwania lub obu tych elementów. W polu wyszukiwania można wpisywać dane na te sposoby:

  • Zapytanie wpisane w polu wprowadzania tekstu
  • Ciąg zapytania osadzony w adresie URL
  • Wykonanie zautomatyzowane

Blok wyników wyszukiwania akceptuje dane wejściowe w ten sposób:

  • Ciąg zapytania osadzony w adresie URL
  • Wykonanie zautomatyzowane

Dostępne są te typy elementów Wyszukiwarki programowalnej:

Typ elementu Komponenty Opis
standardowa <div class="gcse-search"> Pole wyszukiwania i wyniki wyszukiwania wyświetlane w tym samym <div>.
dwukolumnowy, <div class="gcse-searchbox"><div class="gcse-searchresults"> Układ dwukolumnowy z wynikami wyszukiwania po jednej stronie i polem wyszukiwania po drugiej. Jeśli planujesz wstawić w trybie dwukolumnowym kilka elementów na stronie, możesz użyć atrybutu gname, aby połączyć pole wyszukiwania z blokiem wyników wyszukiwania.
tylko pole wyszukiwania <div class="gcse-searchbox-only"> samodzielne pole wyszukiwania,
searchresults-only <div class="gcse-searchresults-only"> Samodzielny blok wyników wyszukiwania.

Do strony internetowej możesz dodać dowolną liczbę prawidłowych elementów wyszukiwania. W przypadku trybu dwukolumnowego muszą być obecne wszystkie wymagane komponenty (pole wyszukiwania i blok wyników wyszukiwania).

Oto przykład prostego elementu wyszukiwania:

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

Tworzenie różnych opcji układu za pomocą elementów Wyszukiwarki niestandardowej

Na stronie Wygląd w panelu sterowania Wyszukiwarki niestandardowej dostępne są te opcje układu: Oto kilka ogólnych wskazówek dotyczących tworzenia opcji układu za pomocą programowalnych elementów wyszukiwania. Aby zobaczyć wersję demonstracyjną dowolnej z tych opcji, kliknij link.

Opcja Komponenty
Pełna szerokość <div class="gcse-search">
Kompaktowy <div class="gcse-search">
Dwie kolumny <div class="gcse-searchbox">, <div class="gcse-searchresults">
Dwustronicowy <div class="gcse-searchbox-only"> na pierwszej stronie, <div class="gcse-searchresults-only"> (lub inne komponenty) na drugiej stronie.
Tylko wyniki <div class="gcse-searchresults-only">
Na serwerach Google <div class="gcse-searchbox-only">

Więcej informacji o opcjach układu

Dostosowywanie elementów Wyszukiwarki niestandardowej

Aby dostosować kolory, czcionkę lub styl linku, otwórz stronę Wygląd i działanie wyszukiwarki niestandardowej.

Za pomocą atrybutów opcjonalnych możesz zastępować konfiguracje utworzone w panelu sterowania Wyszukiwarki niestandardowej. Dzięki temu możesz tworzyć wyszukiwanie dostosowane do konkretnej strony. Na przykład ten kod tworzy pole wyszukiwania, które otwiera stronę wyników (http://www.example.com?search=lady+gaga) w nowym oknie. Wartość atrybutu queryParameterName wraz z ciągiem zapytania użytkownika służy do tworzenia adresu URL wyników.

Pamiętaj, że atrybut queryParameterName ma prefiks data-. Ten prefiks jest wymagany w przypadku wszystkich atrybutów.

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

Jeśli w panelu sterowania Wyszukiwarki niestandardowej włączysz funkcje takie jak autouzupełnianie czy ulepszenia, możesz dostosować te funkcje za pomocą atrybutów. Wszelkie dostosowania określone za pomocą tych atrybutów zastąpią ustawienia wprowadzone w panelu sterowania. W tym przykładzie tworzymy element wyszukiwania z 2 kolumnami, który ma te funkcje:

  • Zarządzanie historią jest włączone
  • Maksymalna liczba wyświetlanych sugestii autouzupełniania jest ustawiona na 5.
  • Uściślenia są wyświetlane jako linki.

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

Obsługiwane atrybuty

Atrybut Typ Opis Komponent
Ogólne
gname Ciąg znaków (Opcjonalnie) Nazwa obiektu Element wyszukiwania. Nazwa służy do pobierania powiązanego komponentu według nazwy lub do parowania komponentu searchbox z komponentem searchresults. Jeśli nie zostanie podany, Wyszukiwarka niestandardowa automatycznie wygeneruje gname na podstawie kolejności komponentów na stronie. Na przykład pierwsza niezatytułowana searchbox-only ma gname „searchbox-only0”, a druga ma gname „searchbox-only1” itd. Pamiętaj, że automatycznie wygenerowany atrybut gname dla komponentu w układzie dwukolumnowym będzie miał wartość two-column. W tym przykładzie użyto atrybutu gname storesearch, aby połączyć komponent searchbox z komponentem searchresults:
<div class="gcse-searchbox" data-gname="storesearch"></div>
<div class="gcse-searchresults" data-gname="storesearch"></div>

Podczas pobierania obiektu, jeśli więcej niż 1 komponent ma ten sam atrybut gname, Wyszukiwarka niestandardowa użyje ostatniego komponentu na stronie.

Dowolna
autoSearchOnLoad Wartość logiczna Określa, czy wyszukiwanie ma być wykonywane na podstawie zapytania osadzonego w adresie URL wczytywanej strony. Pamiętaj, że aby wykonać automatyczne wyszukiwanie, adres URL musi zawierać ciąg zapytania. Domyślnie: true. Dowolna
enableHistory Wartość logiczna Jeśli true, włącza zarządzanie historią przycisków Wstecz i Dalej w przeglądarce. Zobacz prezentację

pole wyszukiwania

tylko pole wyszukiwania

queryParameterName Ciąg znaków Nazwa parametru zapytania, np. q (domyślna) lub query. Zostanie on osadzony w adresie URL (np. http://www.example.com?q=lady+gaga). Pamiętaj, że samo podanie nazwy parametru zapytania nie powoduje automatycznego wyszukiwania po wczytaniu. Aby uruchomić wyszukiwanie automatyczne, w adresie URL musi być obecny ciąg zapytania. Dowolna
resultsUrl URL Adres URL strony z wynikami. (Domyślnie jest to strona hostowana przez Google). tylko pole wyszukiwania
newWindow Wartość logiczna Określa, czy strona wyników ma się otwierać w nowym oknie. Domyślnie: false. tylko pole wyszukiwania
ivt Wartość logiczna

Ten parametr umożliwia podanie wartości logicznej, która informuje Google, że zezwalasz na reklamy korzystające z plików cookie i pamięci lokalnej służących tylko do wykrywania nieprawidłowego ruchu zarówno w przypadku użytkowników, którzy wyrazili zgodę, jak i tych, którzy jej nie wyrazili.

true Gdy tego parametru nie ma lub ma on wartość „true”, ustawimy plik cookie służący tylko do wykrywania nieprawidłowego ruchu i będziemy używać pamięci lokalnej tylko w przypadku użytkowników, którzy wyrazili zgodę.

false Gdy ustawisz ten parametr na „false”, będziemy ustawiać pliki cookie służące tylko do wykrywania nieprawidłowego ruchu i używać pamięci lokalnej zarówno w przypadku użytkowników, którzy wyrazili zgodę, jak i tych, którzy jej nie wyrazili.

Domyślnie: false

Przykładowe użycie: <div class="gcse-search" data-ivt="true"></div>

searchresults

searchresults-only

mobileLayout Ciąg znaków

Określa, czy na urządzeniach mobilnych mają być używane style układu mobilnego.

enabled Używa układu mobilnego tylko na urządzeniach mobilnych.

disabled Nie używa układu mobilnego na żadnych urządzeniach.

forced Używa układu mobilnego na wszystkich urządzeniach.

Domyślnie: enabled

Przykładowe użycie: <div class="gcse-search" data-mobileLayout="disabled"></div>

Dowolna
Autouzupełnianie
enableAutoComplete Wartość logiczna Dostępne tylko wtedy, gdy autouzupełnianie zostało włączone w panelu sterowania Wyszukiwarki niestandardowej. true włącza autouzupełnianie. Dowolna
autoCompleteMaxCompletions Liczba całkowita Maksymalna liczba sugestii autouzupełniania do wyświetlenia.

pole wyszukiwania

tylko pole wyszukiwania

autoCompleteMaxPromotions Liczba całkowita Maksymalna liczba promocji do wyświetlenia w autouzupełnianiu.

pole wyszukiwania

tylko pole wyszukiwania

autoCompleteValidLanguages Ciąg znaków Lista języków, dla których ma być włączone autouzupełnianie, rozdzielona przecinkami. Obsługiwane języki.

pole wyszukiwania

tylko pole wyszukiwania

Zawężenia
defaultToRefinement Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej utworzono zawężenia. Określa domyślną etykietę zawężania do wyświetlenia.Uwaga: ten atrybut nie jest obsługiwany w przypadku układu hostowanego przez Google. Dowolna
refinementStyle Ciąg znaków Akceptowane wartości to tab (domyślna) i link. Operator link jest obsługiwany tylko wtedy, gdy wyszukiwanie obrazów jest wyłączone lub gdy jest włączone, ale wyszukiwanie w internecie jest wyłączone.

searchresults

searchresults-only

Wyszukiwarka grafiki
enableImageSearch Wartość logiczna Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Jeśli true, włącza wyszukiwanie obrazów. Wyniki wyszukiwania obrazów będą wyświetlane na osobnej karcie.

searchresults

searchresults-only

defaultToImageSearch Wartość logiczna Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Jeśli true, strona wyników wyszukiwania będzie domyślnie wyświetlać wyniki wyszukiwania obrazów. Wyniki wyszukiwania w internecie będą dostępne w osobnej karcie.

Dowolna
imageSearchLayout Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Określa układ strony wyników wyszukiwania obrazów. Akceptowane wartości to classic, column lub popup.

searchresults

searchresults-only

imageSearchResultSetSize Liczba całkowita, ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Określa maksymalny rozmiar zestawu wyników wyszukiwania w przypadku wyszukiwania obrazów. Przykłady: large, small, filtered_cse, 10.

Dowolna
image_as_filetype Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Ogranicza wyniki do plików o określonym rozszerzeniu.

Obsługiwane rozszerzenia to jpg, gif, png, bmp, svg, webp, ico, raw.

Dowolna

image_as_oq Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Filtruje wyniki wyszukiwania za pomocą funkcji logicznej LUB.

Przykładowe użycie, jeśli chcesz uzyskać wyniki wyszukiwania zawierające „termin1” lub „termin2”:<div class="gcse-search" data-image_as_oq="term1 term2"></div>

Dowolna

image_as_rights Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Filtry oparte na licencjach.

Obsługiwane wartości to cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived i ich kombinacje.

Zobacz typowych kombinacji.

Dowolna

image_as_sitesearch Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Ogranicz wyniki do stron z określonej witryny.

Przykładowe użycie: <div class="gcse-search" data-image_as_sitesearch="example.com"></div>

Dowolna

image_colortype Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Ogranicza wyszukiwanie do obrazów czarno-białych (monochromatycznych), w odcieniach szarości lub kolorowych. Obsługiwane wartości to mono, gray, color.

Dowolna

image_cr Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Ogranicza wyniki wyszukiwania do dokumentów pochodzących z konkretnego kraju.

Obsługiwane wartości

Dowolna

image_dominantcolor Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Ogranicza wyszukiwanie do obrazów o określonym dominującym kolorze. Obsługiwane wartości to red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown.

Dowolna

image_filter Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Automatyczne filtrowanie wyników wyszukiwania.

Obsługiwane wartości: 0/1

Przykładowe użycie: <div class="gcse-search" data-image_filter="0"></div>

Dowolna

image_gl Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów. Zwiększaj pozycję wyników wyszukiwania, których kraj pochodzenia pasuje do wartości parametru.

Obsługiwane wartości

Dowolna

image_size Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Zwraca obrazy o określonym rozmiarze, który może być jednym z tych: icon, small, medium, large, xlarge, xxlarge lub huge.

Dowolna

image_sort_by Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Sortuj wyniki według daty lub innych uporządkowanych treści.

Aby sortować według trafności, użyj pustego ciągu znaków (image_sort_by="").

Przykładowe użycie: <div class="gcse-search" data-image_sort_by="date"></div>

Dowolna

image_type Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

Ogranicza wyszukiwanie do obrazów określonego typu. Obsługiwane wartości to clipart (Clip art), face (Twarze), lineart (Grafika wektorowa), stock (Zdjęcia stockowe), photo (Fotografie) i animated (Animowane GIF-y).

Dowolna

Wyszukiwanie w internecie
disableWebSearch Wartość logiczna Jeśli true, wyłącza wyszukiwanie w internecie. Zwykle używane tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

searchresults

searchresults-only

webSearchQueryAddition Ciąg znaków Dodatkowe hasła dodane do zapytania w wyszukiwarce, połączone funkcją logiczną LUB.

Przykładowe użycie: <div class="gcse-search" data-webSearchQueryAddition="term1 term2"></div>

Dowolna
webSearchResultSetSize Liczba całkowita, ciąg znaków Maksymalny rozmiar zbioru wyników. Dotyczy zarówno wyszukiwania obrazów, jak i wyszukiwania w internecie. Domyślne ustawienie zależy od układu i tego, czy Wyszukiwarka niestandardowa jest skonfigurowana do wyszukiwania w całej sieci czy tylko w określonych witrynach. Akceptowane wartości:
  • Liczba całkowita z zakresu od 1 do 20
  • : żąda małego zestawu wyników, zwykle 4 wyników na stronę.small
  • large: żąda dużego zestawu wyników, zwykle 8 wyników na stronę.
  • filtered_cse: żądania do 10 wyników na stronę, maksymalnie 10 stron lub 100 wyników.
Dowolna
webSearchSafesearch Ciąg znaków Określa, czy w wynikach wyszukiwania w internecie jest włączony SafeSearch. Akceptowane wartości to offactive. Dowolna
as_filetype Ciąg znaków Ogranicza wyniki do plików o określonym rozszerzeniu. Listę typów plików indeksowanych przez Google znajdziesz w Centrum pomocy Search Console.

Dowolna

as_oq Ciąg znaków Filtruje wyniki wyszukiwania za pomocą funkcji logicznej LUB.

Przykładowe użycie, jeśli chcesz uzyskać wyniki wyszukiwania zawierające „termin1” lub „termin2”:<div class="gcse-search" data-as_oq="term1 term2"></div>

Dowolna
as_rights Ciąg znaków Filtry oparte na licencjach.

Obsługiwane wartości to cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived i ich kombinacje.

Typowe kombinacje znajdziesz na stronie https://wiki.creativecommons.org/wiki/CC_Search_integration.

Dowolna

as_sitesearch Ciąg znaków Ogranicz wyniki do stron z określonej witryny.

Przykładowe użycie: <div class="gcse-search" data-as_sitesearch="example.com"></div>

Dowolna
cr Ciąg znaków Ogranicza wyniki wyszukiwania do dokumentów pochodzących z konkretnego kraju.

Obsługiwane wartości

Przykładowe użycie: <div class="gcse-search" data-cr="countryFR"></div>

Dowolna
filter Ciąg znaków Automatyczne filtrowanie wyników wyszukiwania.

Obsługiwane wartości: 0/1

Przykładowe użycie: <div class="gcse-search" data-filter="0"></div>

Dowolna
gl Ciąg znaków Zwiększaj pozycję wyników wyszukiwania, których kraj pochodzenia pasuje do wartości parametru.

Działa to tylko w połączeniu z ustawieniem wartości języka.

Obsługiwane wartości

Przykładowe użycie: <div class="gcse-search" data-gl="fr"></div>

Dowolna
lr Ciąg znaków Ogranicza wyniki wyszukiwania do dokumentów utworzonych w konkretnym języku.

Obsługiwane wartości

Przykładowe użycie: <div class="gcse-search" data-lr="lang_fr"></div>

Dowolna
sort_by Ciąg znaków Sortuj wyniki według daty lub innych uporządkowanych treści. Wartość atrybutu musi być jedną z opcji podanych w ustawieniach Sortowanie wyników programowalnej wyszukiwarki.

Aby sortować według trafności, użyj pustego ciągu znaków (sort_by="").

Przykładowe użycie: <div class="gcse-search" data-sort_by="date"></div>

Dowolna
Wyniki wyszukiwania
enableOrderBy Wartość logiczna Umożliwia sortowanie wyników według trafności, daty lub etykiety. Dowolna
linkTarget Ciąg znaków Ustawia element docelowy linku. Domyślnie: _blank.

searchresults

searchresults-only

noResultsString Ciąg znaków Określa, jaki tekst pojawi się domyślnie, gdy żadne wyniki nie będą pasować do zapytania. Domyślny ciąg znaków wyniku może służyć do wyświetlania zlokalizowanego ciągu znaków we wszystkich obsługiwanych językach, a ciąg dostosowany nie.

searchresults

searchresults-only

resultSetSize Liczba całkowita, ciąg znaków Maksymalny rozmiar zbioru wyników. Na przykład: large, small, filtered_cse, 10. Wartość domyślna zależy od układu i tego, czy wyszukiwarka jest skonfigurowana do przeszukiwania całej sieci czy tylko określonych witryn. Dowolna
safeSearch Ciąg znaków Określa, czy filtr SafeSearch jest włączony w przypadku wyszukiwania w internecie i wyszukiwania grafiki. Akceptowane wartości to offactive. Dowolna

Wywołania zwrotne

Diagram sekwencji wywołania zwrotnego
Schemat sekwencji wywołań zwrotnych z JavaScriptu elementu wyszukiwania

Funkcje wywołania zwrotnego umożliwiają szczegółową kontrolę nad inicjowaniem elementu wyszukiwania i procesami wyszukiwania. Są one rejestrowane w skrypcie JavaScript elementu wyszukiwania za pomocą globalnego obiektu __gcse. Register Callbacks ilustruje rejestrację wszystkich obsługiwanych wywołań zwrotnych.

Rejestrowanie wywołań zwrotnych

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

Wywołanie zwrotne inicjowania

Wywołanie zwrotne inicjowania jest wywoływane, zanim kod JavaScript elementu wyszukiwania wyrenderuje elementy wyszukiwania w DOM. Jeśli w parametrze __gcse wartość parsetags jest ustawiona na explicit, skrypt JavaScript elementu wyszukiwania pozostawia renderowanie elementów wyszukiwania funkcji wywołania zwrotnego inicjowania (jak pokazano w sekcji Rejestrowanie wywołań zwrotnych). Może to służyć do wybierania elementów do renderowania lub odraczania renderowania elementów do momentu, gdy będą potrzebne. Może też zastępować atrybuty elementów. Na przykład może zmienić pole wyszukiwania skonfigurowane w panelu sterowania lub za pomocą atrybutów HTML na domyślne pole wyszukiwania w internecie w pole wyszukiwania obrazów lub określić, że zapytania przesyłane za pomocą formularza Wyszukiwarki niestandardowej są wykonywane tylko w elemencie wyników wyszukiwania. Zobacz prezentację

Rola wywołania zwrotnego inicjowania jest kontrolowana przez wartość właściwości parsetags obiektu __gcse.

  • Jeśli jego wartość to onload, JavaScript elementu wyszukiwania automatycznie renderuje wszystkie elementy wyszukiwania na stronie. Wywołanie zwrotne inicjowania jest nadal wywoływane, ale nie odpowiada za renderowanie elementów wyszukiwania.
  • Jeśli wartość to explicit, kod JavaScript elementu wyszukiwania nie renderuje elementów wyszukiwania. Wywołanie zwrotne może renderować je selektywnie za pomocą funkcji render() lub renderować wszystkie elementy wyszukiwania za pomocą funkcji go().

Poniższy kod pokazuje, jak renderować pole wyszukiwania wraz z wynikami wyszukiwania w div za pomocą tagu explicit i wywołania zwrotnego inicjowania:

Przykład wywołania zwrotnego inicjowania

Musimy dodać element <div> z wartością identyfikatora w miejscu, w którym chcemy umieścić kod elementu wyszukiwania:

    <div id="test"></div>
Dodaj ten kod JavaScript po tagu <div>. Zwróć uwagę, że odwołuje się on do test, czyli id, którego użyliśmy do identyfikacji <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
};

Aby rozpocząć wczytywanie elementu wyszukiwania, dodaj ten kod HTML. Zastąp wartość cx w klauzuli src własną wartością cx.

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

Wyszukiwanie wywołań zwrotnych

Element wyszukiwania JavaScript obsługuje 6 wywołań zwrotnych, które działają w przepływie sterowania wyszukiwaniem. Wywołania zwrotne wyszukiwania występują w parach: wywołanie zwrotne wyszukiwania w internecie i odpowiadające mu wywołanie zwrotne wyszukiwania grafiki:

  • Wyszukiwanie początkowe
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie
  • Wyniki gotowe
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie
  • Wyświetlone wyniki:
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie

Podobnie jak wywołanie zwrotne inicjowania,wywołania zwrotne wyszukiwania są konfigurowane za pomocą wpisów w obiekcie __gcse. Dzieje się tak, gdy uruchamia się kod JavaScript elementu wyszukiwania. Modyfikacje __gcse po uruchomieniu są ignorowane.

Każde z tych wywołań zwrotnych otrzymuje jako argument obiekt gName elementu wyszukiwania. Symbol gname przydaje się, gdy strona zawiera więcej niż jedno wyszukiwanie. Nadaj elementowi wyszukiwania wartości gname za pomocą atrybutu data-gname:

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

Jeśli kod HTML nie identyfikuje nazwy gname, skrypt JavaScript elementu wyszukiwania generuje wartość, która pozostanie niezmieniona do czasu zmodyfikowania kodu HTML.

Wywołanie zwrotne rozpoczynające wyszukiwanie obrazów lub w internecie

Wywołania zwrotne rozpoczynające wyszukiwanie są wywoływane bezpośrednio przed wysłaniem przez JavaScript elementu wyszukiwania żądania wyników wyszukiwania z serwera. Przykładem może być użycie lokalnej pory dnia do kontrolowania zmian w zapytaniu.

searchStartingCallback(gname, query)
gname
Ciąg identyfikujący element wyszukiwania
query
wartość wpisana przez użytkownika (może być zmodyfikowana przez element JavaScript wyszukiwania);

Wywołanie zwrotne zwraca wartość, która powinna być używana jako zapytanie w tym wyszukiwaniu. Jeśli zwraca pusty ciąg znaków, zwracana wartość jest ignorowana, a wywołujący używa niezmienionego zapytania.

Możesz też umieścić funkcję wywołania zwrotnego w obiekcie __gcse lub dynamicznie dodać wywołanie zwrotne do obiektu za pomocą JavaScriptu:

window.__gcse['searchCallbacks']['web']['starting'] = function(gname, query) {...};
Przykładowe wywołanie zwrotne rozpoczynające wyszukiwanie

Przykładowe wywołanie zwrotne rozpoczynające wyszukiwanie w Example Search Starting Callback dodaje do zapytania wartość morning lub afternoon w zależności od pory dnia.

Przykład wywołania zwrotnego rozpoczynającego wyszukiwanie
    const myWebSearchStartingCallback = (gname, query) => {
      const hour = new Date().getHours();
      return query + (hour < 12 ? ' morning' : ' afternoon');
    };
    window.myImageSearchStartingCallbackName = myWebSearchStartingCallback;

Zainstaluj to wywołanie zwrotne w 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>

Wywołanie zwrotne gotowych wyników wyszukiwania obrazów lub w internecie

Te wywołania zwrotne są wywoływane bezpośrednio przed wyrenderowaniem promocji i wyników przez JavaScript elementu wyszukiwania. Przykładem może być wywołanie zwrotne, które renderuje promocje i wyniki w stylu, którego nie można określić za pomocą zwykłej personalizacji.

resultsReadyCallback(gname, query, promos, results, div)
gname
Ciąg identyfikujący element wyszukiwania
query
zapytanie, które wygenerowało te wyniki
;
promos
tablicę obiektów promocji, które odpowiadają dopasowanym promocjom w przypadku zapytania użytkownika. Zapoznaj się z definicją obiektu promocji.
results
tablicę obiektów wyników. Zobacz definicję obiektu wyniku.
div
element div HTML umieszczony w DOM, w którym element wyszukiwania zwykle umieszcza promocje i wyniki wyszukiwania. Zwykle kod JavaScript elementu wyszukiwania wypełnia ten element div, ale ta funkcja zwrotna może zatrzymać automatyczne renderowanie wyników i użyć tego elementu div do samodzielnego renderowania wyników.

Jeśli to wywołanie zwrotne zwróci wartość true, kod JavaScript elementu wyszukiwania przejdzie do pracy w stopce strony.

Przykładowe wywołanie zwrotne wyników gotowych

Przykładowe wywołanie zwrotne resultsReadyExample Results Ready Callback zastępuje domyślny sposób wyświetlania promocji i wyników bardzo prostym zamiennikiem.

Przykład wywołania zwrotnego po otrzymaniu wyników
    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;
    };

Zainstaluj to wywołanie zwrotne w 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>

Podobnie jak w przypadku wywołania zwrotnego rozpoczynającego wyszukiwanie, powyższy przykład to jeden z wielu sposobów umieszczenia wywołania zwrotnego w obiekcie __gcse.

Wyniki wyszukiwania obrazów lub w internecie – wywołanie zwrotne po renderowaniu

Te wywołania zwrotne są wywoływane bezpośrednio przed wyrenderowaniem stopki strony przez kod JavaScript elementu wyszukiwania. Przykłady zastosowań to wywołanie zwrotne, które dodaje treść wyniku, która nie jest wyświetlana przez element wyszukiwania, np. pole wyboru Zapisz to lub informacje, które nie są renderowane automatycznie, albo wywołanie zwrotne, które dodaje przyciski Więcej informacji.

Jeśli wywołanie zwrotne po wyrenderowaniu wyników potrzebuje informacji, które znajdowały się w parametrach promosresults wywołania zwrotnego po przygotowaniu wyników, może przekazać je między nimi w ten sposób:

callback(gname, query, promoElts, resultElts);
gname
Ciąg identyfikujący element wyszukiwania
query
ciąg wyszukiwania.
promoElts
tablicę elementów DOM zawierających promocje;
resultElts
tablica elementów DOM zawierających wyniki.

Nie zwraca żadnej wartości.

Przykład wywołania zwrotnego wyrenderowanych wyników

Przykładowe resultsRendered wywołanie zwrotne w sekcji Przykład wywołania zwrotnego renderowania wyników dodaje do każdej promocji i każdego wyniku fikcyjne pole wyboru Zachowaj.

Przykład wywołania zwrotnego po wyrenderowaniu wyników
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);
    }
  };

Zainstaluj to wywołanie zwrotne w 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>

Jeśli funkcja zwrotna renderowania wyników potrzebuje informacji przekazanych do funkcji zwrotnej gotowości wyników, może przekazywać te dane między funkcjami zwrotnymi. Poniższy przykład pokazuje jeden z wielu sposobów przekazywania wartości oceny z richSnippetwywołania zwrotnego gotowości wyników do wywołania zwrotnego renderowania wyników.

Przykład wywołania zwrotnego Results Ready Callback współpracującego z wywołaniem zwrotnym Results Rendered Callback
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};
};
Podczas konfigurowania __gcse zainstaluj to wywołanie zwrotne za pomocą kodu takiego jak ten:
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>
Przykład wywołania zwrotnego renderowania wyników: otwieranie określonych typów plików w nowej karcie lub nowym oknie

Poniższy przykład wywołania zwrotnego może modyfikować linki w wynikach wyszukiwania po ich wyrenderowaniu, aby otwierać określony plik w nowej karcie lub stronie zamiast w bieżącym oknie (np. PDF, Excel lub Word). Ułatwia to przeglądanie, gdy użytkownicy nie chcą otwierać pliku w tym samym oknie i opuszczać strony wyników.

Ten przykład wywołania zwrotnego identyfikuje linki do plików PDF w wynikach wyszukiwania i ustawia atrybut target="_blank" w linkach do plików PDF, aby otwierały się w nowej karcie. MutationObserver służy do dynamicznego obsługiwania nowych wyników, jeśli strona zostanie zaktualizowana. Uwaga:handleSearchResults możesz zastąpić .pdf dowolnym innym typem pliku zgodnie z Twoimi wymaganiami.

Ten przykład wywołania zwrotnego nie działa w przypadku układów hostowanych przez Google i nakładkowych.

Otwieranie określonych typów plików w nowej karcie lub nowym oknie
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.');
  }
};

Zainstaluj to wywołanie zwrotne w 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>

Więcej przykładów wywołań zwrotnych

Więcej przykładów wywołań zwrotnych znajdziesz w dokumencie Więcej przykładów wywołań zwrotnych.

Właściwości promocji i wyników

Korzystając z notacji JSDoc, podajemy właściwości obiektów promotionresult. Poniżej znajdziesz listę wszystkich właściwości, które mogą być obecne. Wiele właściwości zależy od szczegółów promocji lub wyników wyszukiwania.

Właściwości promocji
{
  content: string,
  image: {
    height: number,
    url: string,
    width: number,
  },
  title: string,
  url: string,
  visibleUrl: string,
}
Właściwości obiektu wyniku
{
  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,
}

richSnippetwynikach ma luźny typ tablicy obiektów. Wartości wpisów w tej tablicy są kontrolowane przez uporządkowane dane znalezione na stronie internetowej dla każdego wyniku wyszukiwania. Na przykład witryna z opiniami może zawierać dane strukturalne, które dodają ten wpis do tablicy richSnippet:

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

Programmable Search Element Control API (V2)

Obiekt google.search.cse.element publikuje te funkcje statyczne:

Funkcja Opis
.render(componentConfig, opt_componentConfig) Renderuje element wyszukiwania.

Parametry

Nazwa Opis
componentConfig Konfiguracja komponentu Element wyszukiwania programowalnego. Określa te elementy:
  • div (string|Element): id elementu <div> lub elementu div, w którym ma być renderowany element Wyszukiwarki niestandardowej.
  • tag (string): typ komponentów do renderowania. (Jeśli podano wartość opt_componentConfig, wartość atrybutu tag musi wynosić searchbox). Dozwolone wartości:
    • search: pole wyszukiwania i wyniki wyszukiwania wyświetlane razem.
    • searchbox: komponent pola wyszukiwania w Elemencie wyszukiwania programowalnego.
    • searchbox-only: samodzielne pole wyszukiwania, które będzie połączone z blokiem wyników wyszukiwania określonym przez parametr opt_componentConfig w układzie dwukolumnowym.
    • searchresults-only: Samodzielny blok wyników wyszukiwania. Wyszukiwania są wywoływane przez parametr zapytania osadzony w adresie URL lub przez wykonanie programowe.
  • gname (string): (Opcjonalnie) Unikalna nazwa tego komponentu. Jeśli nie zostanie podany, wyszukiwarka niestandardowa automatycznie wygeneruje gname.
  • attributes (Obiekt): opcjonalne atrybuty w formie pary klucz:wartość. Obsługiwane atrybuty
opt_componentConfig Opcjonalnie. Drugi argument konfiguracji komponentu. Używany w trybie TWO_COLUMN do udostępniania komponentu searchresults. Określa te elementy:
  • div (string): id elementu <div> lub elementu div, w którym ma być renderowany element.
  • tag (string): typ komponentów do renderowania. Jeśli podano atrybut opt_componentConfig, wartość atrybutu tag musi wynosić searchresults. Dodatkowo wartość atrybutu tag elementu componentConfig musi wynosić searchbox.
  • gname (string): (Opcjonalnie) Unikalna nazwa tego komponentu. Jeśli nie zostanie podany, Wyszukiwarka niestandardowa automatycznie wygeneruje gname dla tego komponentu. Jeśli podasz ten atrybut, musi on być zgodny z atrybutem gname w atrybucie componentConfig.
  • attributes (Object): opcjonalne atrybuty w formie pary klucz:wartość. Obsługiwane atrybuty.
.go(opt_container) Renderuje wszystkie tagi/klasy elementu wyszukiwania w określonym kontenerze.

Parametry

Nazwa Opis
opt_container Kontener zawierający komponenty elementu wyszukiwania do renderowania. Określ identyfikator kontenera (ciąg tekstowy) lub sam element. Jeśli ten parametr zostanie pominięty, wszystkie komponenty Elementu programowalnej wyszukiwarki na stronie w tagu body zostaną wyrenderowane.
.getElement(gname) Pobiera obiekt elementu według gname. Jeśli nie zostanie znaleziony, zwróć wartość null.

Zwrócony obiekt element ma te atrybuty:

  • gname: nazwa obiektu elementu. Jeśli nie zostanie podany, wyszukiwarka niestandardowa automatycznie wygeneruje gname dla obiektu. Więcej informacji
  • type: typ elementu.
  • uiOptions: atrybuty końcowe użyte do wyrenderowania elementu.
  • execute - function(string): wykonuje zapytanie automatyczne.
  • prefillQuery - function(string): wstępnie wypełnia pole wyszukiwania ciągiem zapytania bez wykonywania zapytania.
  • getInputQuery - function(): pobiera bieżącą wartość wyświetlaną w polu wejściowym.
  • clearAllResults - function(): czyści element sterujący, ukrywając wszystko oprócz pola wyszukiwania (jeśli jest dostępne).

Poniższy kod wykonuje zapytanie „news” w elemencie wyszukiwania „element1”:

var element = google.search.cse.element.getElement('element1');
            element.execute('news');
.getAllElements() Zwraca mapę wszystkich obiektów elementów, które zostały utworzone, z kluczami w postaci gname.