Programmable Search Element Control API

Komponenty Wyszukiwarki niestandardowej (pola wyszukiwania i strony wyników wyszukiwania) możesz umieszczać na swoich stronach internetowych i w innych aplikacjach internetowych za pomocą znaczników HTML. Te elementy Wyszukiwarki niestandardowej składają się z komponentów renderowanych na podstawie ustawień zapisanych przez serwer Wyszukiwarki niestandardowej, a także wszystkich wprowadzonych modyfikacji.

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

Wprowadzenie

Ten dokument zawiera podstawowy model dodawania do strony internetowej elementów Wyszukiwarki niestandardowej oraz opis konfigurowalnych komponentów tego elementu oraz elastycznego interfejsu JavaScript API.

Zakres

W tym dokumencie opisujemy, jak korzystać z funkcji i właściwości charakterystycznych dla interfejsu Programmable Search Engine Control API.

Zgodność z przeglądarką

Listę przeglądarek obsługiwanych przez Wyszukiwarka niestandardowa znajdziesz tutaj.

Odbiorcy

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

Elementy Wyszukiwarki niestandardowej

Za pomocą znaczników HTML możesz dodać do strony element Wyszukiwarki niestandardowej. 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 użytkownicy mogą wpisywać dane w jeden z tych sposobów:

  • Zapytanie wpisane w polu do wprowadzania tekstu.
  • Ciąg zapytania umieszczony w adresie URL
  • Automatyzacja

Blok wyników wyszukiwania akceptuje dane wejściowe w następujący sposób:

  • Ciąg zapytania umieszczony w adresie URL
  • Automatyzacja

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

Typ elementu Komponenty Opis
standardowa <div class="gcse-search"> Pole wyszukiwania i wyniki wyszukiwania wyświetlane w tym samym elemencie <div>.
dwie kolumny <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ć na stronie wiele elementów w trybie 2 kolumnowym, możesz użyć atrybutu gname, aby powiązać pole wyszukiwania z blokiem wyników wyszukiwania.
tylko pole wyszukiwania <div class="gcse-searchbox-only"> Osobne pole wyszukiwania.
tylko wyniki wyszukiwania <div class="gcse-searchresults-only"> Osobny blok wyników wyszukiwania.

Do strony możesz dodać dowolną liczbę prawidłowych elementów wyszukiwania. W trybie 2 kolumn muszą znajdować się 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 i styl w panelu sterowania Wyszukiwarki niestandardowej dostępne są poniższe opcje układu. Oto kilka ogólnych wskazówek dotyczących tworzenia opcji układu za pomocą elementów Wyszukiwarki niestandardowej. Aby zobaczyć demonstrację dowolnej z tych opcji, kliknij link.

Option Komponenty
Pełna szerokość <div class="gcse-search">
Kompaktowy <div class="gcse-search">
Dwie kolumny <div class="gcse-searchbox">, <div class="gcse-searchresults">
2 strony <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 linków, otwórz stronę Wygląd i styl w wyszukiwarce niestandardowej.

Atrybuty opcjonalne pozwalają zastępować konfiguracje utworzone w panelu sterowania Wyszukiwarki niestandardowej. Dzięki temu możesz utworzyć środowisko wyszukiwania dostosowane do określonej 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 jest używana do tworzenia adresu URL wyników.

Pamiętaj, że atrybut queryParameterName jest poprzedzony znakiem 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 używasz takich funkcji jak autouzupełnianie lub udoskonalanie, możesz je dostosowywać za pomocą atrybutów. Wszelkie dostosowania wprowadzone za pomocą tych atrybutów zastąpią ustawienia wprowadzone w panelu sterowania. Poniższy przykład tworzy dwukolumnowy element wyszukiwania z następującymi funkcjami:

  • Zarządzanie historią jest włączone
  • Maksymalna liczba wyświetlanych autouzupełnień jest ustawiona na 5
  • Doprecyzowania 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 wyszukiwania elementu. 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 element gname na podstawie kolejności komponentów na stronie internetowej. Na przykład pierwszy bez nazwy searchbox-only ma gname „searchbox-only0” (tylko pole wyszukiwania0), drugi gname „seachbox-only1” itd. Pamiętaj, że wartość gname wygenerowana automatycznie dla komponentu w układzie dwukolumnowym będzie mieć wartość two-column. W tym przykładzie użyto gname storesearch do połączenia komponentu searchbox z komponentem searchresults:
<div class="gcse-searchbox" data-gname="storesearch"></div>
<div class="gcse-searchresults" data-gname="storesearch"></div>

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

Dowolnie
autoSearchOnLoad Wartość logiczna Określa, czy wyszukiwanie ma być wykonywane według zapytania umieszczonego w adresie URL wczytywanej strony. Pamiętaj, że aby automatyczne wyszukiwanie zostało wykonane, URL musi zawierać ciąg zapytania. Wartość domyślna: true. Dowolnie
enableHistory Wartość logiczna Jeśli ma wartość true, włącza zarządzanie historią przycisków Wstecz i Dalej w przeglądarce. Zobacz prezentację

searchbox

tylko pole wyszukiwania

queryParameterName Ciąg znaków Nazwa parametru zapytania, np. q (wartość domyślna) lub query. Zostanie ona umieszczona w adresie URL (np. http://www.example.com?q=lady+gaga). Pamiętaj, że określenie samej nazwy parametru zapytania nie uruchamia automatycznego wyszukiwania po wczytaniu. Aby wyszukiwanie automatyczne zostało wykonane, adres URL musi zawierać ciąg zapytania. Dowolnie
resultsUrl URL Adres URL strony wyników. Domyślnie jest to strona hostowana przez Google. tylko pole wyszukiwania
newWindow Wartość logiczna Określa, czy strona wyników ma otwierać się w nowym oknie. Wartość domyślna: false. tylko pole wyszukiwania
ivt Wartość logiczna

Ten parametr umożliwia podanie wartości logicznej, która informuje Google, że chcesz zezwolić na reklamy korzystające z nieprawidłowego pliku cookie dotyczącego tylko ruchu i pamięci lokalnej zarówno w przypadku ruchu użytkowników, którzy wyrazili zgodę, jak i tych, którzy nie wyrazili zgody.

true Jeśli ten parametr jest niedostępny lub ma on wartość „true”, ustawimy nieprawidłowy plik cookie przeznaczony tylko do ruchu i użyjemy pamięci lokalnej tylko w przypadku ruchu, w przypadku którego użytkownicy wyrazili zgodę.

false Gdy ustawisz dla tego parametru wartość „false” (fałsz), ustawimy nieprawidłowy plik cookie przeznaczony tylko do ruchu i będziemy korzystać z pamięci lokalnej zarówno w przypadku ruchu, w przypadku którego użytkownicy wyrazili zgodę, jak i tych, którzy nie wyrazili zgody.

Domyślny: false

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

wyniki wyszukiwania

tylko wyniki wyszukiwania

mobileLayout Ciąg znaków

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

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

disabled Nie korzysta z układu na urządzenia mobilne.

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

Domyślny: enabled

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

Dowolnie
Autouzupełnianie
enableAutoComplete Wartość logiczna Opcja dostępna tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączone jest autouzupełnianie. true włącza autouzupełnianie. Dowolnie
autoCompleteMaxCompletions Liczba całkowita Maksymalna liczba pozycji autouzupełniania do wyświetlenia.

searchbox

tylko pole wyszukiwania

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

searchbox

tylko pole wyszukiwania

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

searchbox

tylko pole wyszukiwania

Doprecyzowania
defaultToRefinement Ciąg znaków Dostępne tylko wtedy, gdy doprecyzowania zostały utworzone w panelu sterowania Wyszukiwarki niestandardowej. Określa domyślną etykietę zawężenia wyszukiwania do wyświetlenia.Uwaga: ten atrybut nie jest obsługiwany w przypadku układu hostowanego przez Google. Dowolnie
refinementStyle Ciąg znaków Akceptowane wartości to tab (domyślne) i link. Funkcja link jest obsługiwana tylko wtedy, gdy wyszukiwanie obrazów jest wyłączone lub gdy jest włączone, ale wyszukiwanie w internecie jest wyłączone.

wyniki wyszukiwania

tylko wyniki wyszukiwania

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

Jeśli ma wartość true, włącza wyszukiwanie obrazów. Wyniki wyszukiwania grafiki będą się wyświetlać na osobnej karcie.

wyniki wyszukiwania

tylko wyniki wyszukiwania

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

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

Dowolnie
imageSearchLayout Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwarkę grafiki.

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

wyniki wyszukiwania

tylko wyniki wyszukiwania

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

Określa maksymalny rozmiar wyników wyszukiwania zestawu dla wyszukiwarki grafiki. Na przykład: large, small, filtered_cse, 10.

Dowolnie
image_as_filetype Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwarkę grafiki.

Ogranicza wyniki do plików z określonym rozszerzeniem.

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

Dowolnie

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

Filtrowanie wyników wyszukiwania za pomocą operatora logicznego LUB.

Przykład użycia, gdy chcesz uzyskać wyniki wyszukiwania zawierające hasło „hasło1” lub „hasło2”:<div class="gcse-search" data-image_as_oq="term1 term2"></div>

Dowolnie

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

Filtry działające na podstawie licencjonowania.

Obsługiwane wartości to cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived oraz te kombinacje.

Zobacz typowe kombinacje.

Dowolnie

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

Ogranicz wyniki do stron z określonej witryny.

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

Dowolnie

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

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

Dowolnie

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

Ogranicza wyniki wyszukiwania do dokumentów pochodzących z określonego kraju.

Obsługiwane wartości

Dowolnie

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

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.

Dowolnie

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

Automatyczne filtrowanie wyników wyszukiwania.

Obsługiwane wartości: 0/1

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

Dowolnie

image_gl Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwarkę grafiki. Ulepszaj wyniki wyszukiwania, których kraj pochodzenia jest zgodny z wartością parametru.

Obsługiwane wartości

Dowolnie

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

Zwraca obrazy o określonym rozmiarze, przy czym rozmiar może mieć jedną z tych wartości: icon, small, medium, large, xlarge, xxlarge lub huge.

Dowolnie

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

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

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

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

Dowolnie

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

Ogranicza wyszukiwanie do obrazów określonego typu. Obsługiwane wartości to clipart (Clipart), face (twarze osób), lineart (rysunki liniowe), stock (zdjęcia licencjonowane), photo (zdjęcia) i animated (animowane GIF-y).

Dowolnie

Wyszukiwarka Google
disableWebSearch Wartość logiczna Jeśli zasada ma wartość true, wyszukiwanie w internecie jest wyłączone. Zwykle używana tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej włączono wyszukiwanie obrazów.

wyniki wyszukiwania

tylko wyniki wyszukiwania

webSearchQueryAddition Ciąg znaków Dodatkowe hasła dodane do zapytania za pomocą operatora logicznego LUB.

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

Dowolnie
webSearchResultSetSize Liczba całkowita, ciąg znaków Maksymalny rozmiar zestawu wyników. Dotyczy zarówno wyszukiwania obrazów, jak i wyszukiwania w internecie. Wartość domyślna zależy od układu i tego, czy Wyszukiwarka niestandardowa jest skonfigurowana do przeszukiwania całej sieci czy tylko określonych witryn. Dopuszczalne wartości:
  • Liczba całkowita od 1 do 20
  • small: prosi o niewielki zestaw wyników, zwykle 4 wyniki na stronę.
  • large: żąda dużego zbioru wyników, zwykle 8 wyników na stronę.
  • filtered_cse: umożliwia wysłanie żądania do 10 wyników na stronę, maksymalnie 10 stron lub 100 wyników.
Dowolnie
webSearchSafesearch Ciąg znaków Określa, czy filtr SafeSearch ma być włączony w przypadku wyników wyszukiwania. Akceptowane wartości to off i active. Dowolnie
as_filetype Ciąg znaków Ogranicza wyniki do plików z określonym rozszerzeniem. Listę typów plików możliwych do zindeksowania przez Google znajdziesz w Centrum pomocy Search Console.

Dowolnie

as_oq Ciąg znaków Filtrowanie wyników wyszukiwania za pomocą operatora logicznego LUB.

Przykład użycia, gdy chcesz uzyskać wyniki wyszukiwania zawierające hasło „hasło1” lub „hasło2”:<div class="gcse-search" data-as_oq="term1 term2"></div>

Dowolnie
as_rights Ciąg znaków Filtry działające na podstawie licencjonowania.

Obsługiwane wartości to cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived oraz te kombinacje.

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

Dowolnie

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

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

Dowolnie
cr Ciąg znaków Ogranicza wyniki wyszukiwania do dokumentów pochodzących z określonego kraju.

Obsługiwane wartości

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

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

Obsługiwane wartości: 0/1

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

Dowolnie
gl Ciąg znaków Ulepszaj wyniki wyszukiwania, których kraj pochodzenia jest zgodny z wartością parametru.

Działa tylko w połączeniu z ustawieniem language value.

Obsługiwane wartości

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

Dowolnie
lr Ciąg znaków Ogranicza wyniki wyszukiwania do dokumentów napisanych w określonym języku.

Obsługiwane wartości

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

Dowolnie
sort_by Ciąg znaków Sortuj wyniki według daty lub innej uporządkowanych treści. Wartość atrybutu musi być jedną z opcji dostępnych w ustawieniach sortowania wyników w usłudze wyszukiwania programowego.

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

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

Dowolnie
Wyniki wyszukiwania
enableOrderBy Wartość logiczna Umożliwia sortowanie wyników według trafności, daty lub etykiety. Dowolnie
linkTarget Ciąg znaków Określa element docelowy linku. Wartość domyślna: _blank.

wyniki wyszukiwania

tylko wyniki wyszukiwania

noResultsString Ciąg znaków Określa domyślny tekst wyświetlany, gdy żadne wyniki nie pasują do zapytania. Domyślny ciąg wynikowy może służyć do wyświetlania przetłumaczonego ciągu we wszystkich obsługiwanych językach, a w przypadku wersji niestandardowych nie jest to możliwe.

wyniki wyszukiwania

tylko wyniki wyszukiwania

resultSetSize Liczba całkowita, ciąg znaków Maksymalny rozmiar zestawu wyników. Na przykład: large, small, filtered_cse, 10. Zależy ona od układu strony i tego, czy wyszukiwarka jest skonfigurowana do przeszukiwania całej sieci czy tylko określonych witryn. Dowolnie
safeSearch Ciąg znaków Określa, czy filtr SafeSearch ma być włączony zarówno w przypadku wyszukiwania w internecie, jak i wyszukiwania obrazów. Akceptowane wartości to off i active. Dowolnie

Wywołania zwrotne

Schemat sekwencji wywołania zwrotnego
schemat sekwencji wywołań zwrotnych z kodu JavaScript elementu wyszukiwania

Wywołania zwrotne zapewniają szczegółową kontrolę nad procesami inicjowania i wyszukiwania elementu wyszukiwania. Są one rejestrowane w kodzie JavaScript elementu wyszukiwania za pomocą globalnego obiektu __gcse. Opcja Zarejestruj wywołania zwrotne pokazuje rejestrację wszystkich obsługiwanych wywołań zwrotnych.

Zarejestruj wywołania zwrotne

  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 inicjujące

Wywołanie zwrotne inicjowania jest wywoływane przed wyrenderowaniem przez kod JavaScript elementu wyszukiwania elementów wyszukiwania w DOM. Jeśli zasada parsetags w __gcse ma wartość explicit, kod JavaScript elementu wyszukiwania pozostawia w przypadku elementów wyszukiwania wywołanie zwrotne inicjowania do renderowania (jak widać w sekcji Zarejestruj wywołania zwrotne). Tej opcji można użyć do wyboru elementów do wyrenderowania lub do odroczenia renderowania elementów do momentu, gdy będą potrzebne. Może też zastępować atrybuty elementów, np. włączyć w polu wyszukiwania obrazów pole wyszukiwania skonfigurowane w panelu sterowania lub atrybuty HTML tak, aby wyszukiwanie w internecie domyślnie uwzględniało wyszukiwanie w internecie. Można też określić, że zapytania przesyłane za pomocą formularza Wyszukiwarki niestandardowej są wykonywane w elemencie występującym tylko w przypadku wyników wyszukiwania. Zobacz prezentację

Rola wywołania zwrotnego inicjowania zależy od wartości właściwości parsetags __gcse.

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

Poniższy kod pokazuje, jak renderować pole wyszukiwania razem z wynikami wyszukiwania w obiekcie div przy użyciu analizy i wywołania zwrotnego explicit:

Przykład wywołania zwrotnego inicjowania

W miejscu, w którym chcemy umieścić kod elementu wyszukiwania, należy umieścić element <div> z wartością „id”:

    <div id="test"></div>
Dodaj kod JavaScript po <div>. Pamiętaj, że odwołuje się on do test, czyli id użytej do zidentyfikowania <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
};

Dołącz ten kod HTML, aby rozpocząć ładowanie elementu wyszukiwania. 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>

Szukaj wywołań zwrotnych

Kod JavaScript elementu wyszukiwania obsługuje 6 wywołań zwrotnych, które działają w procesie sterowania wyszukiwaniem. Wywołania zwrotne w wyszukiwarce występują parami: są to wywołania zwrotne z wyszukiwarki Google i pasujące wywołanie zwrotne w wyszukiwarce grafiki:

  • Rozpoczęcie wyszukiwania:
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie
  • Wyniki są gotowe
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie
  • Wyrenderowane wyniki
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie

Podobnie jak wywołanie zwrotne inicjowania,wywołania zwrotne wyszukiwania konfiguruje się przy użyciu wpisów w obiekcie __gcse. Dzieje się tak w trakcie uruchamiania kodu JavaScript elementu wyszukiwania. Modyfikacje wartości __gcse po uruchomieniu są ignorowane.

Każde z tych wywołań zwrotnych jest przekazywane jako argument gName elementu wyszukiwania. Parametr gname przydaje się, gdy strona zawiera więcej niż jedno wyszukiwanie. Za pomocą atrybutu data-gname nadaj elementowi wyszukiwania wartości gname:

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

Jeśli w kodzie HTML nie można zidentyfikować identyfikatora gname, kod JavaScript elementu wyszukiwania wygeneruje wartość, która pozostanie spójna do czasu modyfikacji kodu.

Wywołanie zwrotne rozpoczynające się od wyszukiwania grafiki/wyszukiwania w internecie

Początkowe wywołania zwrotne wyszukiwania są wywoływane bezpośrednio przed tym, jak skrypt JavaScript elementu wyszukiwania wysyła żądanie wyszukiwania do swojego serwera. Przykładowym przypadkiem użycia jest lokalna pora dnia do kontrolowania zmian w zapytaniu.

searchStartingCallback(gname, query)
gname
Ciąg identyfikujący element wyszukiwania
query
wartość wpisana przez użytkownika (prawdopodobnie zmodyfikowana przez kod JavaScript elementu wyszukiwania).

Wywołanie zwrotne zwraca wartość, która powinna zostać użyta jako zapytanie dla tego wyszukiwania. Jeśli zwraca pusty ciąg, zwracana wartość jest ignorowana, a element wywołujący używa niezmodyfikowanego 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 wyszukiwanie rozpoczynające wywołanie zwrotne

Przykładowe wyszukiwanie rozpoczynające wywołanie zwrotne w sekcji Przykładowe wywołanie zwrotne w ramach wyszukiwania dodaje do zapytania morning lub afternoon, w zależności od pory dnia.

Przykład początkowego wywołania zwrotnego w wyszukiwaniu
    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>

Gotowe wywołanie zwrotne w wynikach wyszukiwania grafiki/wyników wyszukiwania w internecie

Te wywołania zwrotne są wywoływane bezpośrednio przed wyrenderowaniem promocji i wyników przez kod JavaScript elementu wyszukiwania. Przykładem może być wywołanie zwrotne, które renderuje promocje i powoduje styl, którego nie można określić przy normalnym dostosowaniu.

resultsReadyCallback(gname, query, promos, results, div)
gname
Ciąg identyfikujący element wyszukiwania
query
zapytanie, które wygenerowało te wyniki
promos
tablica obiektów promocji, które odpowiadają promocjom dopasowanym do zapytania użytkownika; Zobacz definicję obiektu promocji.
results
tablica obiektów wyników. Zobacz definicję obiektu wyniku.
div
element div w kodzie HTML umieszczony w modelu DOM, w którym element wyszukiwania zwykle umieszcza promocje i wyniki wyszukiwania; Normalnie kod JavaScript elementu wyszukiwania obsługuje wypełnianie tego elementu div, ale to wywołanie zwrotne może zatrzymać automatyczne renderowanie wyników i wykorzystać ten element div do samych wyników.

Jeśli to wywołanie zwrotne zwraca wartość true, kod JavaScript elementu wyszukiwania przechodzi do działania stopki strony.

Przykładowe wyniki gotowe – wywołanie zwrotne

Przykładowe wywołanie zwrotne resultsReady w Gotowe wywołanie zwrotne z przykładowymi wynikami zastępuje domyślną prezentację promocji i wyników bardzo prostym zamiennikiem.

Przykład gotowego wywołania zwrotnego 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 rozpoczynania wywołania zwrotnego wyszukiwania, powyższe działanie jest jednym z wielu sposobów umieszczenia wywołania zwrotnego w obiekcie __gcse.

Wywołanie zwrotne wyrenderowane w wynikach wyszukiwania grafiki/wyszukiwania w internecie

Te wywołania zwrotne są wywoływane bezpośrednio przed wyrenderowaniem stopki strony przez kod JavaScript elementu wyszukiwania. Przykładowe przypadki użycia to m.in. wywołanie zwrotne dodające treść wyników, której nie wyświetla element wyszukiwania, np. pole wyboru zapisz to, informacje, które nie są renderowane automatycznie, albo wywołanie zwrotne dodające przyciski aby uzyskać więcej informacji.

Jeśli wyrenderowane wywołanie zwrotne w wynikach wymaga informacji, które znajdują się w parametrach promos i results wywołania zwrotnego gotowych wyników, może je przekazać między nimi w ten sposób:

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

Nie ma zwracanej wartości.

Przykładowe wywołanie zwrotne wyrenderowanego wyniku

Przykładowe wywołanie zwrotne resultsRendered w funkcji Wyrenderowane wyniki z przykładowego wywołania zwrotnego powoduje dodanie fikcyjnego pola wyboru Keep do każdej promocji i wyniku.

Przykład wywołania zwrotnego renderowanego 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 wyrenderowane wywołanie zwrotne w wynikach wymaga informacji, które zostały przekazane do wywołania zwrotnego gotowych wyników, może przekazać te dane między wywołaniami zwrotnymi. Przykład poniżej pokazuje jeden z wielu sposobów na przekazanie wartości oceny z richSnippet z wywołania zwrotnego gotowych wyników do wyrenderowanych wywołań zwrotnych.

Przykład gotowego wywołania zwrotnego wyników z wywołaniem zwrotnym z wyrenderowanymi wynikami
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};
};
Zainstaluj to wywołanie zwrotne, używając poniższego kodu podczas konfigurowania __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>

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

To są właściwości obiektów promotion i result w notacji JSDoc. Tutaj znajdziesz listę wszystkich właściwości, które mogą być obecne. Obecność wielu właściwości zależy od szczegółów promocji lub wyniku 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 wyników
{
  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 w wynikach ma luźny typ tablicy obiektów. Wartości wpisów w tej tablicy są kontrolowane przez uporządkowane dane, które znajdują się na stronie internetowej w przypadku każdego wyniku wyszukiwania. Na przykład witryna z opiniami może zawierać uporządkowane dane, które dodają ten wpis tablicy do tabeli richSnippet:

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

Interfejs Programmable Search Element Control API (V2)

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

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

Parametry

Nazwa Opis
componentConfig Konfiguracja komponentu Wyszukiwarki niestandardowej. Określa:
  • div (ciąg|Element): id elementu <div> lub div, w którym ma być renderowany element Wyszukiwarki niestandardowej.
  • tag (ciąg znaków): typ komponentów do renderowania. (W przypadku podania opt_componentConfig wartość atrybutu tag musi wynosić searchbox). Dozwolone wartości to:
    • search: pole wyszukiwania i wyniki wyszukiwania wyświetlane razem
    • searchbox: składnik pola wyszukiwania elementu Wyszukiwarki niestandardowej.
    • searchbox-only: samodzielne pole wyszukiwania, które zostanie sparowane z blokiem wyników wyszukiwania określonym przez opt_componentConfig w układzie dwukolumnowym.
    • searchresults-only: samodzielny blok wyników wyszukiwania. Wyszukiwania są wywoływane przez parametr zapytania umieszczony w adresie URL lub przez automatyczne wykonanie.
  • gname (ciąg znaków): (opcjonalnie) unikalna nazwa komponentu. Jeśli Wyszukiwarka niestandardowa nie zostanie podana, automatycznie wygeneruje gname.
  • attributes (obiekt): atrybuty opcjonalne w postaci pary klucz-wartość. Obsługiwane atrybuty.
opt_componentConfig Opcjonalnie. Drugi argument konfiguracji komponentu. Używane w trybie TWO_COLUMN w celu udostępnienia komponentu searchresults. Określa:
  • div (ciąg znaków): id elementu <div> lub elementu div, w którym element ma być renderowany.
  • tag (ciąg znaków): typ komponentów do renderowania. Jeśli jest podany opt_componentConfig, wartość atrybutu tag musi wynosić searchresults. Dodatkowo wartość atrybutu tag obiektu componentConfig musi wynosić searchbox.
  • gname (ciąg znaków): (opcjonalnie) unikalna nazwa komponentu. Jeśli nie zostanie podany, Wyszukiwarka niestandardowa automatycznie wygeneruje gname dla tego komponentu. Jeśli jest podany, musi być zgodny z gname w componentConfig.
  • attributes (obiekt): atrybuty opcjonalne w postaci pary klucz-wartość. Obsługiwane atrybuty.
.go(opt_container) Renderuje wszystkie tagi lub klasy elementu wyszukiwania w określonym kontenerze.

Parametry

Nazwa Opis
opt_container Kontener zawierający komponenty elementu wyszukiwania do renderowania. Podaj identyfikator kontenera (ciąg znaków) lub sam element. Jeśli go pominiesz, wszystkie komponenty elementu Wyszukiwarki niestandardowej w tagu body na stronie będą renderowane.
.getElement(gname) Pobiera obiekt elementu za pomocą funkcji gname. Jeśli nie znaleziono, zwróć wartość null.

Zwrócony obiekt element ma te atrybuty:

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

Ten kod wykonuje zapytanie „news” w elemencie wyszukiwania „element1”:

var element = google.search.cse.element.getElement('element1');
            element.execute('news');
.getAllElements() Zwraca mapę wszystkich utworzonych obiektów elementów z kluczem gname.