Programmable Search Element Control API

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

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

Wprowadzenie

Ten dokument zawiera podstawowy model dodawania elementów Wyszukiwarki niestandardowej wraz z objaśnieniami konfigurowanych elementów i elastycznym interfejsem API JavaScript.

Zakres

Ten dokument opisuje korzystanie z funkcji i właściwości związanych z interfejsem Programmable Search Engine Control API.

Zgodność z przeglądarką

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

Odbiorcy

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

Elementy wyszukiwarki z automatyzacją

Za pomocą znaczników HTML możesz dodać do swojej strony Wyszukiwarka niestandardowa. Każdy element składa się z co najmniej jednego komponentu: pola wyszukiwania, bloku wyników wyszukiwania lub obu tych elementów. Pole wyszukiwania akceptuje dane wejściowe użytkownika w dowolny z tych sposobów:

  • Zapytanie wpisane w polu tekstowym
  • Ciąg zapytania umieszczony w adresie URL
  • Realizacja automatyczna

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

  • Ciąg zapytania umieszczony w adresie URL
  • Realizacja automatyczna

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

Typ elementu Komponenty Opis
dostęp standardowy <div class="gcse-search"> Pole wyszukiwania i wyniki wyszukiwania wyświetlane w tym samym elemencie <div>.
dwukolumnowe <div class="gcse-searchbox"><div class="gcse-searchresults"> Dwukolumnowy układ z wynikami wyszukiwania po jednej stronie i polem wyszukiwania po drugiej. Jeśli chcesz wstawić wiele elementów w trybie dwukolumnowym na stronie internetowej, możesz użyć atrybutu gname do sparowania pola wyszukiwania z blokiem wyników wyszukiwania.
tylko pole wyszukiwania <div class="gcse-searchbox-only"> Samodzielne pole wyszukiwania.
tylko wyniki wyszukiwania <div class="gcse-searchresults-only"> Samodzielny blok wyników wyszukiwania.

Do strony możesz dodać dowolną liczbę prawidłowych elementów wyszukiwania. W trybie dwukolumnowym 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>

Utwórz różne opcje układu za pomocą elementów Programmable Search Search

Na stronie Wygląd i styl 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ą elementów wyszukiwarki niestandardowej. Aby zobaczyć prezentację dowolnej z tych opcji, kliknij link.

Option Komponenty
Pełna szerokość <div class="gcse-search">
Kompaktowy <div class="gcse-search">
Dwukolumnowe <div class="gcse-searchbox">, <div class="gcse-searchresults">
Dwustronicowe <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.

Za pomocą atrybutów opcjonalnych możesz zastąpić konfiguracje utworzone w panelu sterowania Wyszukiwarki niestandardowej. Dzięki temu możesz dostosować wyszukiwanie do konkretnej strony. Na przykład poniższy 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 utworzenia adresu URL wyników.

Pamiętaj, że atrybut queryParameterName jest poprzedzony ciągiem 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 zostały włączone takie funkcje jak autouzupełnianie lub doprecyzowywanie, 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 pokazuje utworzenie dwukolumnowego elementu w wyszukiwarce z tymi funkcjami:

  • Zarządzanie historią jest włączone
  • Maksymalna liczba wyświetlanych pozycji autouzupełniania to 5
  • Zawężenia wyszukiwania 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 elementu wyszukiwania. Nazwa służy do pobierania powiązanego komponentu według nazwy lub 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. Na przykład pierwszy nienazwany searchbox-only ma gname "tylko pole wyszukiwania", drugi gname "seachbox-only1" itd. Pamiętaj, że wartość gname wygenerowana automatycznie dla komponentu w układzie 2-kolumnowym to two-column. Ten przykład używa 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 podczas pobierania obiektu więcej niż 1 komponent ma ten sam element gname, Wyszukiwarka niestandardowa użyje ostatniego komponentu na stronie.

Dowolny
autoSearchOnLoad Wartość logiczna Określa, czy wyszukiwanie ma być wykonywane przez zapytanie umieszczone w adresie URL strony, która się wczytuje. Pamiętaj, że aby wykonać automatyczne wyszukiwanie, adres URL musi znajdować się w adresie URL. Domyślnie: true. Dowolny
enableHistory Wartość logiczna Jeśli zasada true, umożliwia zarządzanie historią przycisków Wstecz i Dalej w przeglądarce. Obejrzyj prezentację.

pole wyszukiwania

tylko pole wyszukiwania

queryParameterName Ciąg znaków Nazwa parametru zapytania, np. q (wartość domyślna) lub query. Zostanie on osadzony w adresie URL (na przykład http://www.example.com?q=lady+gaga). Pamiętaj, że samo określenie nazwy parametru zapytania nie wywołuje automatycznego wyszukiwania po wczytaniu. Aby można było uruchomić automatyczne wyszukiwanie, adres URL musi zawierać ciąg zapytania. Dowolny
resultsUrl URL Adres URL strony wyników. Domyślnie jest to strona na serwerze 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
personalizedAds Wartość logiczna

Określa, czy użytkownicy zgodzili się na udostępnianie Google danych osobowych przez wydawcę na potrzeby wyświetlania reklam spersonalizowanych.

true Zwraca reklamy kierowane na zapytanie oraz niektóre reklamy, na które mogą być kierowane pliki cookie Google użytkownika. Jeśli użytkownik znajduje się w Unii Europejskiej, musi najpierw wyrazić zgodę na udostępnianie Google danych osobowych przez Twoją witrynę pod kątem reklam spersonalizowanych.

false zwraca tylko reklamy kierowane na zapytanie. Nie powoduje wyświetlania żadnych reklam kierowanych za pomocą plików cookie Google użytkownika. Jeśli użytkownik odmówił zgody na przekazywanie Google danych osobowych przez Twoją witrynę na potrzeby wyświetlania reklam spersonalizowanych, musisz ustawić wartość false.

Domyślny: true

Przykład użycia: <div class="gcse-search" data-personalizedAds="false"></div>

wyniki wyszukiwania

tylko wyniki wyszukiwania

mobileLayout Ciąg znaków

Określa, czy style układów mobilnych powinny być używane w przypadku urządzeń mobilnych.

enabled Układu strony mobilnej można używać tylko na urządzeniach mobilnych.

disabled Nie korzysta z układu mobilnego na żadnych urządzeniach.

forced Na wszystkich urządzeniach jest używany układ mobilny.

Domyślny: enabled

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

Dowolny
Autouzupełnianie
enableAutoComplete Wartość logiczna Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej jest włączone autouzupełnianie. true umożliwia autouzupełnianie. Dowolny
autoCompleteMaxCompletions Liczba całkowita Maksymalna liczba pozycji autouzupełniania do wyświetlenia.

pole wyszukiwania

tylko pole wyszukiwania

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

pole wyszukiwania

tylko pole wyszukiwania

autoCompleteValidLanguages Ciąg znaków Lista oddzielonych przecinkami języków, dla których należy włączyć autouzupełnianie. Obsługiwane języki

pole wyszukiwania

tylko pole wyszukiwania

Zawężenia
defaultToRefinement Ciąg znaków Dostępne tylko po utworzeniu zawężeń wyszukiwania w panelu sterowania Wyszukiwarki niestandardowej. Określa domyślną etykietę zawężenia wyświetlania do wyświetlania.Uwaga: ten atrybut nie jest obsługiwany w układach hostowanych przez Google. Dowolny
refinementStyle Ciąg znaków Akceptowane wartości to tab (domyślnie) i link. Opcja link jest obsługiwana tylko wtedy, gdy wyszukiwanie grafiki jest wyłączone lub wyszukiwanie 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 jest włączone wyszukiwanie grafiki.

Jeśli zasada true, umożliwia wyszukiwanie grafiki. Wyniki wyszukiwania grafiki będą wyświetlane na osobnej karcie.

wyniki wyszukiwania

tylko wyniki wyszukiwania

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

Jeśli zasada true jest włączona, na stronie wyników wyszukiwania domyślnie wyświetlają się wyniki wyszukiwania grafiki. Wyniki z internetu będą dostępne na osobnej karcie.

Dowolny
imageSearchLayout Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej jest włączone wyszukiwanie grafiki.

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

wyniki wyszukiwania

tylko wyniki wyszukiwania

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

Określa maksymalny rozmiar wyników wyszukiwania ustawionych dla wyszukiwania grafiki. na przykład large, small, filtered_cse, 10.

Dowolny
image_as_filetype Ciąg znaków Dostępne tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej jest włączone wyszukiwanie grafiki.

Ogranicza wyniki do plików określonego rozszerzenia.

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

Dowolny

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

Filtruj wyniki wyszukiwania za pomocą operatora logicznego LUB.

Przykładowe zastosowanie, jeśli chcesz znaleźć wyniki wyszukiwania zawierające hasło „hasło1” lub „hasło2”:<div class="gcse-search" data-image_as_oq="term1 term2"></div>

Dowolny

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

Filtry oparte na licencji.

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

Zobacz typowe kombinacje.

Dowolny

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

Ogranicza wyniki do stron z określonej witryny.

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

Dowolny

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

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

Dowolny

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

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

Obsługiwane wartości

Dowolny

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

Ogranicza wyszukiwanie do określonych kolorów dominujących. Obsługiwane wartości to red, orange, yellow, green, teal, blue, purple, pink, white, gray, black oraz brown.

Dowolny

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

automatyczne filtrowanie wyników wyszukiwania;

Obsługiwane wartości: 0/1

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

Dowolny

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

Obsługiwane wartości

Dowolny

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

Zwraca obrazy o określonym rozmiarze, czyli o rozmiarze icon, small, medium, large, xlarge, xxlarge lub huge.

Dowolny

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

Możesz posortować wyniki według daty lub innych uporządkowanych treści.

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

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

Dowolny

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

Ogranicza wyszukiwanie do określonego typu obrazów. 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).

Dowolny

Wyszukiwarka Google
disableWebSearch Wartość logiczna Jeśli zasada true jest wyłączona, wyszukiwanie w internecie jest wyłączone. Zwykle używany tylko wtedy, gdy w panelu sterowania Wyszukiwarki niestandardowej jest włączone wyszukiwanie grafiki.

wyniki wyszukiwania

tylko wyniki wyszukiwania

webSearchQueryAddition Ciąg znaków Dodatkowe hasła dodane do zapytania przy użyciu operatora logicznego LUB.

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

Dowolny
webSearchResultSetSize Liczba całkowita, ciąg znaków Maksymalny rozmiar zestawu wyników. Dotyczy to wyszukiwarki grafiki i wyszukiwarki. 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. Akceptowane wartości to:
  • Liczba całkowita z zakresu 1–20
  • small: żąda niewielkich wyników, zwykle 4 na stronę.
  • large: żąda dużego zbioru wyników, zwykle 8 wyników na stronę.
  • filtered_cse: można zgłosić maksymalnie 10 wyników na stronę, a maksymalnie 10 stron lub 100 wyników.
Dowolny
webSearchSafesearch Ciąg znaków Określa, czy filtr SafeSearch jest włączony w przypadku wyników z elementami rozszerzonymi. Akceptowane wartości to off i active. Dowolny
as_filetype Ciąg znaków Ogranicza wyniki do plików określonego rozszerzenia. Listę typów plików, które Google może indeksować, znajdziesz w Centrum pomocy Search Console.

Dowolny

as_oq Ciąg znaków Filtruj wyniki wyszukiwania za pomocą operatora logicznego LUB.

Przykładowe zastosowanie, jeśli chcesz znaleźć wyniki wyszukiwania zawierające hasło „hasło1” lub „hasło2”:<div class="gcse-search" data-as_oq="term1 term2"></div>

Dowolny
as_rights Ciąg znaków Filtry oparte na licencji.

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

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

Dowolny

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

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

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

Obsługiwane wartości

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

Dowolny
filter Ciąg znaków automatyczne filtrowanie wyników wyszukiwania;

Obsługiwane wartości: 0/1

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

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

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

Obsługiwane wartości

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

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

Obsługiwane wartości

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

Dowolny
sort_by Ciąg znaków Możesz posortować wyniki według daty lub innych uporządkowanych treści. Wartość atrybutu musi być jedną z opcji dostępnych w ustawieniach sortowania wyników w wyszukiwarce niestandardowej.

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

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

Dowolny
Wyniki wyszukiwania
enableOrderBy Wartość logiczna Umożliwia sortowanie wyników według trafności, daty lub etykiety. Dowolny
linkTarget Ciąg znaków Określa wartość elementu docelowego linku. Domyślnie: _blank.

wyniki wyszukiwania

tylko wyniki wyszukiwania

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 może służyć do wyświetlania zlokalizowanego ciągu znaków we wszystkich obsługiwanych językach, a dostosowany – nie.

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. Wartość domyślna zależy od układu i tego, czy wyszukiwarka jest skonfigurowana do wyszukiwania w całej sieci czy tylko w określonych witrynach. Dowolny
safeSearch Ciąg znaków Określa, czy filtr SafeSearch jest włączony zarówno w przypadku wyszukiwania w internecie, jak i w grafice. Akceptowane wartości to off i active. Dowolny

Wywołania zwrotne

Schemat sekwencji wywołań
schemat sekwencji wywołań zwrotnych z JavaScriptu Elementu wyszukiwania

Wywołania zwrotne obsługują szczegółową kontrolę nad inicjowaniem i wyszukiwaniem elementów. Są one rejestrowane za pomocą kodu JavaScript elementu wyszukiwania za pomocą globalnego obiektu __gcse. Opcja Zarejestruj wywołania zwrotne pokazuje wszystkie obsługiwane wywołania zwrotne.

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

Inicjacja wywołania zwrotnego jest wywoływana przed wyrenderowaniem elementów wyszukiwania w DOM przez element JavaScript elementu wyszukiwania. Jeśli parsetags ma wartość explicit w __gcse, kod JavaScript elementu wyszukiwania pozostawia renderowanie elementów wyszukiwania dla wywołania zwrotnego inicjowania (jak pokazano w sekcji Rejestrowanie wywołań zwrotnych). Tego elementu można użyć do wybrania elementów do wyrenderowania lub do odroczenia elementów renderowania, dopóki nie będą potrzebne. Może też zastąpić atrybuty elementów. Na przykład może zmienić pole wyszukiwania skonfigurowane za pomocą panelu sterowania lub atrybuty HTML w domyślne miejsce na wyszukiwarkę grafiki albo określić, że zapytania przesyłane za pomocą Wyszukiwarki niestandardowej są wykonywane w elemencie przeznaczonym tylko do wyszukiwania. Obejrzyj prezentację.

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

  • 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 jego 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()

Ten kod pokazuje, jak renderować pole wyszukiwania wraz z wynikami wyszukiwania w div za pomocą parstagu i wywołania inicjującego explicit:

Przykład wywołania zwrotnego inicjowania

Musi to być element <div> z wartością identyfikatora – w miejscu, w którym chcemy użyć kodu elementu wyszukiwania:

    <div id="test"></div>
Dodaj ten kod JavaScript po elemencie <div>. Zwróć uwagę na to, że chodzi o test, id, który posłużył 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
};

Dołącz ten kod HTML, aby rozpocząć wczytywanie elementu wyszukiwania. Zastąp wartość cx w klauzuli src Twoją własną wartością cx.

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

Wyszukaj wywołania zwrotne

JavaScript elementu Search obsługuje sześć wywołań zwrotnych, które działają w procesie kontroli wyszukiwania. Wywołania zwrotne w wyszukiwarce wyświetlają się w parych, wywołaniach wyszukiwania w internecie i pasujących wywołaniach wyszukiwania grafiki:

  • Początek wyszukiwania
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie
  • Wyniki są gotowe
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie
  • Renderowanie wyników
    • Wyszukiwanie obrazów
    • Wyszukiwanie w internecie

Podobnie jak inicjowanie wywołania zwrotnego wywołania zwrotne wyszukiwania są konfigurowane z użyciem wpisów w obiekcie __gcse. Dzieje się tak w momencie uruchomienia JavaScriptu elementu wyszukiwania. Modyfikacje wartości __gcse po uruchomieniu są ignorowane.

Każde takie wywołanie zwrotne jest przekazywane jako gName dla elementu wyszukiwania jako argument. Pole gname jest przydatne, gdy strona zawiera kilka wyszukiwań. Dodaj do elementu wyszukiwania wartość gname za pomocą atrybutu data-gname:

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

Jeśli kod HTML nie identyfikuje elementu gname, kod JavaScript elementu wyszukiwania generuje wartość, która będzie taka sama do czasu zmodyfikowania tego kodu.

Początkowe wywołanie zwrotne wyszukiwarki grafiki lub wyszukiwarki

Początkowe wywołania zwrotne wyszukiwania są wywoływane bezpośrednio przed wywołaniem wyników wyszukiwania z pliku JavaScript elementu elementu. Może to być na przykład lokalna pora dnia w celu kontrolowania zmian w zapytaniu.

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

Wywołanie zwrotne zwraca wartość, która powinna być użyta jako zapytanie w tym wyszukiwaniu. Jeśli jest pusty, 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 dodawać wywołanie zwrotne do obiektu za pomocą JavaScriptu:

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

W przypadku przykładowego wyszukiwania rozpoczynającego się wywołanie zwrotne w sekcji Przykładowe wywołanie zwrotne rozpoczyna się zapytanie morning lub afternoon – w zależności od pory dnia.

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

Zainstaluj to wywołanie zwrotne w aplikacji 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 gotowe do wyświetlenia w wyszukiwarce lub wyniku w wyszukiwarce

Te wywołania zwrotne są wywoływane bezpośrednio przed renderowaniem wyników i wyników JavaScriptu Elementu wyszukiwania. Przykładowe zastosowanie to wywołanie zwrotne, które renderuje promocje i tworzy styl, którego nie można określić przy normalnym dostosowywaniu.

resultsReadyCallback(gname, query, promos, results, div)
gname
Ciąg znaków elementu wyszukiwania
query
zapytanie, które wygenerowało te wyniki
promos
Tablica obiektów promocji, która odpowiada promocjom zapytania użytkownika. Zobacz definicję obiektów promocyjnych.
results
tablica obiektów wyników. Zobacz definicję obiektów wyników.
div
div HTML umieszczony w elemencie DOM, w którym element wyszukiwania zwykle umieszcza promocje i wyniki wyszukiwania Normalnie element div z funkcją Search zaradziłby JavaScript JavaScript, ale może to spowodować zatrzymanie automatycznego renderowania wyników i wykorzystanie tego div do renderowania samych wyników.

Jeśli to wywołanie zwrotne zwraca wartość true, kod JavaScript elementu wyszukiwarki zostaje przekierowany do stopki strony.

Przykładowe gotowe wyniki wywołania

Przykładowe wywołanie zwrotne resultsReady w przykładowym wywołaniu wywołania zwrotnego zastępuje domyślną prezentację promocji i wyników przy użyciu bardzo prostej zmiany.

Przykład gotowego wyniku zwrotnego
    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 aplikacji 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 wyszukiwania początkowego, wywołanie zwrotne jest jednym z wielu sposobów umieszczenia wywołania zwrotnego w obiekcie __gcse.

Renderowanie wywołania graficznego/wyników wyszukiwania w internecie

Te wywołania zwrotne są wywoływane bezpośrednio przed wyrenderowaniem stopki strony przez kod JavaScript elementu wyszukiwania. Może to być na przykład wywołanie zwrotne, które dodaje treść wynikową, której element wyszukiwania nie wyświetla, takie jak pole wyboru Zapisz ten wynik wyszukiwania, informacje, które nie są renderowane automatycznie, albo wywołanie zwrotne, które dodaje przycisk więcej informacji.

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

callback(gname, query, promoElts, resultElts);
gname
Ciąg znaków elementu wyszukiwania
query
ciąg znaków.
promoElts
tablica elementów DOM zawierających promocje.
resultElts
tablica elementów DOM z wynikami.

Nie ma wartości zwrotu.

Przykładowe wywołanie zwrotne

Przykładowe wywołanie zwrotne resultsRendered w przykładowym wywołanym wyniku wywołania dodaje charakterystyczne pole wyboru Zachowaj do każdej promocji i wyniku.

Przykład wywołania zwrotnego wygenerowanego przez wyniki
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 aplikacji 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 wyników wymaga informacji, które zostały przekazane do wywołania gotowego do wywołania wyników, może przekazać te dane między wywołaniami zwrotnymi. Poniższy przykład pokazuje jeden ze sposobów przekazywania wartości oceny z pola richSnippet od wywołania gotowego do wyników do wyrenderowanego wywołania zwrotnego.

Przykład wywołania zwrotnego gotowego do udostępnienia z wyrenderowanym wywołaniem wyników
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 za pomocą tego 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ładowych połączeń

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

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

Korzystając z notacji JSDoc, są to właściwości obiektów promotion i result. Tutaj znajdziesz listę wszystkich dostępnych właściwości. Obecność wielu obiektów 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 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,
}

richSnippet w wynikach ma luźny typ tablicy obiektów. Wartościami w tej tablicy zarządza uporządkowane dane znalezione na stronie internetowej w przypadku każdego wyniku wyszukiwania. Na przykład witryna z opiniami może zawierać uporządkowane dane, które dodają do tablicy richSnippet ten wpis tablicy:

'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 element wyszukiwania.

Parametry

Nazwa Opis
componentConfig Konfiguracja komponentu Programmable Search Element. Określa:
  • div (ciąg|element): element id elementu <div> lub elementu div, w którym będzie renderowany element wyszukiwarki niestandardowej.
  • tag (ciąg znaków): typ komponentów do renderowania. Jeśli podana jest wartość opt_componentConfig, atrybut tag musi mieć wartość searchbox. Dozwolone wartości:
    • search: pole wyszukiwania i wyniki wyszukiwania wyświetlane razem
    • searchbox: komponent pola wyszukiwania Programowanego elementu.
    • searchbox-only: osobne pole wyszukiwania, które zostanie sparowane z blokiem wyników wyszukiwania określonym przez układ 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): (opcjonalny) unikalna nazwa tego komponentu. Jeśli nie zostanie podany, Wyszukiwarka niestandardowa automatycznie wygeneruje element gname.
  • attributes (Obiekt): atrybuty opcjonalne w postaci pary klucz:wartość. Obsługiwane atrybuty.
opt_componentConfig Opcjonalnie. Drugi argument konfiguracji komponentu. Używana w trybie TWO_COLUMN do udostępniania komponentu searchresults. Określa:
  • div (ciąg znaków): id elementu <div> lub div, w którym ma być renderowany element.
  • tag (ciąg znaków): typ komponentów do renderowania. Jeśli podana jest wartość opt_componentConfig, wartość atrybutu tag musi wynosić searchresults. Dodatkowo wartość atrybutu tag componentConfig musi wynosić searchbox.
  • gname (ciąg znaków): (opcjonalny) unikalna nazwa tego komponentu. Jeśli nie zostanie podany, Wyszukiwarka niestandardowa automatycznie wygeneruje element gname dla tego komponentu. Jeśli został podany, musi pasować do gname w componentConfig.
  • attributes (Obiekt): atrybuty opcjonalne w postaci pary klucz:wartość. Obsługiwane atrybuty.
.go(opt_container) Renderuje wszystkie tagi lub klasy elementu Search w określonym kontenerze.

Parametry

Nazwa Opis
opt_container Kontener zawierający komponenty wyszukiwania, które chcesz renderować. Podaj identyfikator kontenera (ciąg znaków) lub sam element. Jeśli zostanie pominięta, wszystkie komponenty elementu Wyszukiwarki niestandardowej zawarte w tagu body strony zostaną wyrenderowane.
.getElement(gname) Pobiera obiekt elementu według: gname. Jeśli nie zostanie znaleziony, zwracaj wartość null.

Zwrócony obiekt element ma te atrybuty:

  • gname: nazwa obiektu elementu. Jeśli nie zostanie podany, Wyszukiwarka niestandardowa automatycznie wygeneruje dla obiektu właściwość gname. Więcej informacji
  • type: typ elementu.
  • uiOptions: atrybuty końcowe używane do renderowania elementu.
  • execute –function(string): wykonuje zapytanie automatyczne.
  • prefillQuery -function(string): wypełnia pole wyszukiwania ciągiem zapytań 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 występują.

Ten kod wykonuje zapytanie „wiadomości” w elemencie wyszukiwania „element1”:

var element = google.search.cse.element.getElement('element1');
            element.execute('news');
.getAllElements() Zwraca mapę wszystkich utworzonych obiektów, których klucz to gname.