Programmable Search Element Control API

Sie können Komponenten der programmierbaren Suchmaschine (Suchfelder und Suchergebnisseiten) mithilfe von HTML-Markup in Ihre Webseiten und andere Webanwendungen einbetten. Diese Elemente der Programmable Search Engine bestehen aus Komponenten, die auf Grundlage der auf dem Programmable Search-Server gespeicherten Einstellungen sowie aller von Ihnen vorgenommenen Anpassungen gerendert werden.

Das gesamte JavaScript wird asynchron geladen. So kann Ihre Webseite weiter geladen werden, während der Browser das JavaScript der Programmable Search Engine abruft.

Einführung

In diesem Dokument wird ein grundlegendes Modell zum Hinzufügen von Programmable Search Engine-Elementen auf Ihrer Webseite beschrieben. Außerdem werden die konfigurierbaren Komponenten des Elements und die flexible JavaScript API erläutert.

Umfang

In diesem Dokument wird beschrieben, wie Sie die Funktionen und Eigenschaften verwenden, die für die Programmable Search Engine Control API spezifisch sind.

Browserkompatibilität

Eine Liste der von der programmierbaren Suchmaschine unterstützten Browser finden Sie hier.

Zielgruppe

Diese Dokumentation richtet sich an Entwickler, die ihren Seiten Funktionen der programmierbaren Google-Suche hinzufügen möchten.

Programmierbare Suchelemente

Sie können HTML-Markup verwenden, um ein Programmable Search Element auf Ihrer Seite einzufügen. Jedes Element besteht aus mindestens einer Komponente: einem Suchfeld, einem Block mit Suchergebnissen oder beidem. Im Suchfeld können Nutzereingaben auf folgende Weise erfolgen:

  • Eine Suchanfrage, die in das Texteingabefeld eingegeben wurde
  • Ein in eine URL eingebetteter Abfragestring
  • Programmatische Ausführung

Außerdem kann der Block mit Suchergebnissen auf folgende Weise Eingaben entgegennehmen:

  • Ein in eine URL eingebetteter Abfragestring
  • Programmatische Ausführung

Die folgenden Arten von programmierbaren Suchelementen sind verfügbar:

Elementtyp Komponenten Beschreibung
standard <div class="gcse-search"> Ein Suchfeld und Suchergebnisse, die im selben <div> angezeigt werden.
Zwei Spalten <div class="gcse-searchbox"> und <div class="gcse-searchresults"> Ein zweispaltiges Layout mit Suchergebnissen auf der einen Seite und einem Suchfeld auf der anderen Seite. Wenn Sie mehrere Elemente im zweispaltigen Modus auf Ihrer Webseite einfügen möchten, können Sie mit dem Attribut gname ein Suchfeld mit einem Block von Suchergebnissen verknüpfen.
nur Suchfeld <div class="gcse-searchbox-only"> Ein eigenständiges Suchfeld.
searchresults-only <div class="gcse-searchresults-only"> Ein eigenständiger Block mit Suchergebnissen.

Sie können Ihrer Webseite beliebig viele gültige Suchelemente hinzufügen. Im zweispaltigen Modus müssen alle erforderlichen Komponenten (ein Suchfeld und ein Suchergebnisblock) vorhanden sein.

Hier ein Beispiel für ein einfaches Suchelement:

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

Verschiedene Layoutoptionen mit Programmable Search Elements erstellen

Die folgenden Layoutoptionen sind im Steuerfeld der Programmable Search Engine auf der Seite „Design“ verfügbar. Im Folgenden finden Sie einige allgemeine Richtlinien zum Erstellen von Layoutoptionen mit programmierbaren Suchelementen. Klicken Sie auf den Link, um eine Demo für eine der Optionen aufzurufen.

Option Komponenten
Breite <div class="gcse-search">
Kompakt <div class="gcse-search">
Zweispaltig <div class="gcse-searchbox">, <div class="gcse-searchresults">
Zweiseitig <div class="gcse-searchbox-only"> auf der ersten Seite, <div class="gcse-searchresults-only"> (oder andere Komponenten) auf der zweiten Seite.
Nur Ergebnisse <div class="gcse-searchresults-only">
Von Google gehostet <div class="gcse-searchbox-only">

Weitere Informationen zu Layoutoptionen

Elemente der programmierbaren Suche anpassen

Wenn Sie Farben, Schriftarten oder Linkstile anpassen möchten, rufen Sie die Seite „Erscheinungsbild“ Ihrer Programmable Search Engine auf.

Mit optionalen Attributen können Sie Konfigurationen überschreiben, die im Steuerfeld der Programmable Search Engine erstellt wurden. So können Sie eine seitenbezogene Suchfunktion erstellen. Mit dem folgenden Code wird beispielsweise ein Suchfeld erstellt, in dem eine Ergebnisseite (http://www.example.com?search=lady+gaga) in einem neuen Fenster geöffnet wird. Der Wert des queryParameterName-Attributs wird zusammen mit dem Suchanfrage-String des Nutzers verwendet, um die Ergebnis-URL zu erstellen.

Das Attribut queryParameterName hat das Präfix data-. Dieses Präfix ist für alle Attribute erforderlich.

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

Wenn Sie das Steuerfeld der Programmierbaren Suche verwendet haben, um Funktionen wie automatische Vervollständigung oder Suchfilter zu aktivieren, können Sie diese Funktionen mit Attributen anpassen. Alle Anpassungen, die Sie mit diesen Attributen vornehmen, überschreiben die Einstellungen in der Steuerkonsole. Im folgenden Beispiel wird ein Suchfeld mit zwei Spalten und den folgenden Funktionen erstellt:

  • Verwaltung des Verlaufs ist aktiviert
  • Die maximale Anzahl der angezeigten Vorschläge für die automatische Vervollständigung ist auf 5 festgelegt.
  • Verfeinerungen werden als Links angezeigt.

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

Unterstützte Attribute

Attribut Typ Beschreibung Komponente
Allgemein
gname String (Optional) Ein Name für das Search Element-Objekt. Ein Name wird verwendet, um eine zugehörige Komponente anhand des Namens abzurufen oder eine searchbox-Komponente mit einer searchresults-Komponente zu verknüpfen. Wenn keine angegeben wird, generiert die Programmable Search Engine automatisch eine gname basierend auf der Reihenfolge der Komponenten auf der Webseite. Die erste unbenannte searchbox-only hat beispielsweise die gname „searchbox-only0“, die zweite die gname „searchbox-only1“ usw. Die automatisch generierte gname für eine Komponente im zweispaltigen Layout ist two-column. Im folgenden Beispiel wird der gname storesearch verwendet, um eine searchbox-Komponente mit einer searchresults-Komponente zu verknüpfen:
<div class="gcse-searchbox" data-gname="storesearch"></div>
<div class="gcse-searchresults" data-gname="storesearch"></div>

Wenn beim Abrufen eines Objekts mehrere Komponenten denselben gname haben, wird von der Programmable Search Engine die letzte Komponente auf der Seite verwendet.

Alle
autoSearchOnLoad Boolesch Gibt an, ob eine Suche mit der in die URL der geladenen Seite eingebetteten Anfrage ausgeführt werden soll. Beachten Sie, dass in der URL ein Abfragestring vorhanden sein muss, damit die automatische Suche ausgeführt werden kann. Standard: true. Alle
enableHistory Boolesch Wenn true, wird die Verlaufsverwaltung für die Schaltflächen „Zurück“ und „Vorwärts“ des Browsers aktiviert. Demo ansehen

Suchfeld

nur Suchfeld

queryParameterName String Der Name des Abfrageparameters, z. B. q (Standard) oder query. Dieser wird in die URL eingebettet, z. B. http://www.beispiel.de?q=lady+gaga. Wenn Sie nur den Namen des Suchparameters angeben, wird beim Laden keine automatische Suche ausgelöst. Damit die automatische Suche ausgeführt werden kann, muss in der URL ein Abfragestring vorhanden sein. Alle
resultsUrl URL Die URL der Ergebnisseite. Die Standardeinstellung ist die von Google gehostete Seite. nur Suchfeld
newWindow Boolesch Gibt an, ob die Ergebnisseite in einem neuen Fenster geöffnet wird. Standard: false. nur Suchfeld
ivt Boolesch

Mit diesem Parameter können Sie einen booleschen Wert angeben, der Google darüber informiert, dass Sie Anzeigen zulassen möchten, bei denen Cookies zur Erkennung ungültiger Zugriffe und lokale Speicherung sowohl für Traffic mit als auch ohne Einwilligung verwendet werden.

true Wenn dieser Parameter nicht vorhanden ist oder Sie ihn auf „true“ setzen, wird nur bei Zugriffen mit Einwilligung ein Cookie zur Erkennung ungültiger Zugriffe gesetzt und die lokale Speicherung verwendet.

false Wenn Sie diesen Parameter auf „false“ setzen, wird sowohl bei Zugriffen mit als auch bei Zugriffen ohne Einwilligung ein Cookie zur Erkennung ungültiger Zugriffe gesetzt und die lokale Speicherung verwendet.

Standardwert: false

Verwendungsbeispiel: <div class="gcse-search" data-ivt="true"></div>

searchresults

searchresults-only

mobileLayout String

Gibt an, ob die Formatvorlagen für das mobile Layout für Mobilgeräte verwendet werden sollen.

enabled Verwendet das mobile Layout nur für Mobilgeräte.

disabled Verwendet das mobile Layout für keine Geräte.

forced Verwendet das mobile Layout für alle Geräte.

Standardwert: enabled

Verwendungsbeispiel: <div class="gcse-search" data-mobileLayout="disabled"></div>

Alle
Automatische Vervollständigung
enableAutoComplete Boolesch Nur verfügbar, wenn die automatische Vervollständigung im Steuerfeld der Programmable Search Engine aktiviert wurde. true aktiviert die automatische Vervollständigung. Alle
autoCompleteMaxCompletions Ganzzahl Die maximale Anzahl der anzuzeigenden Vervollständigungen.

Suchfeld

nur Suchfeld

autoCompleteMaxPromotions Ganzzahl Die maximale Anzahl der Angebote, die in der automatischen Vervollständigung angezeigt werden sollen.

Suchfeld

nur Suchfeld

autoCompleteValidLanguages String Durch Kommas getrennte Liste der Sprachen, für die die automatische Vervollständigung aktiviert werden soll. Unterstützte Sprachen

Suchfeld

nur Suchfeld

Optimierungen
defaultToRefinement String Nur verfügbar, wenn im Steuerfeld der Programmable Search Engine Verfeinerungen erstellt wurden. Gibt das Standardlabel für die Verfeinerung an, das angezeigt werden soll.Hinweis: Dieses Attribut wird für das von Google gehostete Layout nicht unterstützt. Alle
refinementStyle String Zulässige Werte sind tab (Standard) und link. link wird nur unterstützt, wenn die Bildersuche deaktiviert ist oder wenn die Bildersuche aktiviert, die Websuche aber deaktiviert ist.

searchresults

searchresults-only

Bildersuche
enableImageSearch Boolesch Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Wenn true, wird die Bildersuche aktiviert. Bildsuchergebnisse werden auf einem separaten Tab angezeigt.

searchresults

searchresults-only

defaultToImageSearch Boolesch Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Wenn true, werden auf der Suchergebnisseite standardmäßig Bildsuchergebnisse angezeigt. Die Web-Ergebnisse sind auf einem separaten Tab verfügbar.

Alle
imageSearchLayout String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Gibt das Layout der Bildsuchergebnisseite an. Zulässige Werte sind classic, column und popup.

searchresults

searchresults-only

imageSearchResultSetSize Ganzzahl, String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Gibt die maximale Größe des Suchergebnissatzes für die Bildersuche an. Beispiele: large, small, filtered_cse, 10.

Alle
image_as_filetype String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Beschränkt die Ergebnisse auf Dateien mit einer bestimmten Erweiterung.

Unterstützte Erweiterungen sind jpg, gif, png, bmp, svg, webp, ico und raw.

Alle

image_as_oq String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Suchergebnisse mit einer Oder-Verknüpfung filtern.

Beispiel für die Verwendung, wenn Sie Suchergebnisse erhalten möchten, die entweder „Begriff1“ oder „Begriff2“ enthalten:<div class="gcse-search" data-image_as_oq="term1 term2"></div>

Alle

image_as_rights String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Filter basierend auf der Lizenzierung.

Unterstützte Werte sind cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived und Kombinationen dieser Werte.

Weitere Informationen zu typischen Kombinationen

Alle

image_as_sitesearch String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Beschränkt die Suchergebnisse auf Ergebnisse von einer bestimmten Website.

Verwendungsbeispiel: <div class="gcse-search" data-image_as_sitesearch="example.com"></div>

Alle

image_colortype String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Beschränkt die Suche auf Schwarz-Weiß-Bilder (monochrom), Graustufenbilder oder Farbbilder. Unterstützte Werte: mono, gray, color.

Alle

image_cr String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Beschränkt die Suchergebnisse auf Dokumente, die in einem bestimmten Land erstellt wurden.

Unterstützte Werte

Alle

image_dominantcolor String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Beschränkt die Suche auf Bilder mit einer bestimmten dominanten Farbe. Unterstützte Werte sind red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown.

Alle

image_filter String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Automatisches Filtern von Suchergebnissen.

Unterstützte Werte: 0/1

Verwendungsbeispiel: <div class="gcse-search" data-image_filter="0"></div>

Alle

image_gl String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde. Suchergebnisse mit dem angegebenen Herkunftsland werden bevorzugt.

Unterstützte Werte

Alle

image_size String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Gibt Bilder einer bestimmten Größe zurück. Die Größe kann einer der folgenden Werte sein: icon, small, medium, large, xlarge, xxlarge oder huge..

Alle

image_sort_by String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Sortieren der Ergebnisse nach Datum oder anderen strukturierten Inhalten.

Wenn Sie nach Relevanz sortieren möchten, verwenden Sie einen leeren String (image_sort_by="").

Verwendungsbeispiel: <div class="gcse-search" data-image_sort_by="date"></div>

Alle

image_type String Nur verfügbar, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

Beschränkt die Suche auf Bilder eines bestimmten Typs. Unterstützte Werte sind clipart (Cliparts), face (Gesichter von Personen), lineart (Strichzeichnungen), stock (Stockfotos), photo (Fotos) und animated (animierte GIFs).

Alle

Websuche
disableWebSearch Boolesch Bei true wird die Websuche deaktiviert. Wird normalerweise nur verwendet, wenn die Bildersuche im Steuerfeld der Programmable Search Engine aktiviert wurde.

searchresults

searchresults-only

webSearchQueryAddition String Der Suchanfrage werden mit einer Oder-Verknüpfung zusätzliche Begriffe hinzugefügt.

Verwendungsbeispiel: <div class="gcse-search" data-webSearchQueryAddition="term1 term2"></div>

Alle
webSearchResultSetSize Ganzzahl, String Die maximale Größe des Ergebnissatzes. Gilt sowohl für die Bildersuche als auch für die Websuche. Der Standardwert hängt vom Layout und davon ab, ob die Programmable Search Engine für die Suche im gesamten Web oder nur auf bestimmten Websites konfiguriert ist. Zulässige Werte sind unter anderem:
  • Eine Ganzzahl zwischen 1 und 20
  • small: Fordert eine kleine Ergebnismenge an, in der Regel 4 Ergebnisse pro Seite.
  • large: Es wird eine große Ergebnismenge angefordert, in der Regel 8 Ergebnisse pro Seite.
  • filtered_cse: Anfragen mit bis zu 10 Ergebnissen pro Seite, maximal 10 Seiten oder 100 Ergebnisse.
Alle
webSearchSafesearch String Gibt an, ob SafeSearch für Websuchergebnisse aktiviert ist. Zulässige Werte sind off und active. Alle
as_filetype String Beschränkt die Ergebnisse auf Dateien mit einer bestimmten Erweiterung. Eine Liste der von Google indexierbaren Dateitypen finden Sie in der Search Console-Hilfe.

Alle

as_oq String Suchergebnisse mit einer Oder-Verknüpfung filtern.

Beispiel für die Verwendung, wenn Sie Suchergebnisse erhalten möchten, die entweder „Begriff1“ oder „Begriff2“ enthalten:<div class="gcse-search" data-as_oq="term1 term2"></div>

Alle
as_rights String Filter basierend auf der Lizenzierung.

Unterstützte Werte sind cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived und Kombinationen dieser Werte.

Unter https://wiki.creativecommons.org/wiki/CC_Search_integration finden Sie typische Kombinationen.

Alle

as_sitesearch String Beschränkt die Suchergebnisse auf Ergebnisse von einer bestimmten Website.

Verwendungsbeispiel: <div class="gcse-search" data-as_sitesearch="example.com"></div>

Alle
cr String Beschränkt die Suchergebnisse auf Dokumente, die in einem bestimmten Land erstellt wurden.

Unterstützte Werte

Verwendungsbeispiel: <div class="gcse-search" data-cr="countryFR"></div>

Alle
filter String Automatisches Filtern von Suchergebnissen.

Unterstützte Werte: 0/1

Verwendungsbeispiel: <div class="gcse-search" data-filter="0"></div>

Alle
gl String Suchergebnisse mit dem angegebenen Herkunftsland werden bevorzugt.

Das funktioniert nur in Verbindung mit der Einstellung Sprachwert.

Unterstützte Werte

Verwendungsbeispiel: <div class="gcse-search" data-gl="fr"></div>

Alle
lr String Beschränkt die Suchergebnisse auf Dokumente in einer bestimmten Sprache.

Unterstützte Werte

Verwendungsbeispiel: <div class="gcse-search" data-lr="lang_fr"></div>

Alle
sort_by String Sortieren der Ergebnisse nach Datum oder anderen strukturierten Inhalten. Der Attributwert muss eine der Optionen sein, die in den Einstellungen für die Ergebnissortierung der programmierbaren Suchmaschine angegeben sind.

Wenn Sie nach Relevanz sortieren möchten, verwenden Sie einen leeren String (sort_by="").

Verwendungsbeispiel: <div class="gcse-search" data-sort_by="date"></div>

Alle
Suchergebnisse
enableOrderBy Boolesch Ermöglicht das Sortieren von Ergebnissen nach Relevanz, Datum oder Label. Alle
linkTarget String Legt das Linkziel fest. Standard: _blank.

searchresults

searchresults-only

noResultsString String Legt den Standardtext fest, der angezeigt wird, wenn keine Suchergebnisse für die Suchanfrage vorliegen. Mit dem Standardergebnisstring kann ein lokalisierter String in allen unterstützten Sprachen angezeigt werden, mit dem benutzerdefinierten String nicht.

searchresults

searchresults-only

resultSetSize Ganzzahl, String Die maximale Größe des Ergebnissatzes. Beispiel: large, small, filtered_cse, 10. Der Standardwert hängt vom Layout und davon ab, ob die Engine so konfiguriert ist, dass sie im gesamten Web oder nur auf bestimmten Websites sucht. Alle
safeSearch String Gibt an, ob SafeSearch sowohl für die Websuche als auch für die Bildersuche aktiviert ist. Zulässige Werte sind off und active. Alle

Callbacks

Callback Sequence Diagram
Sequenzdiagramm der Callbacks aus dem JavaScript des Suchelements

Callbacks unterstützen die detaillierte Steuerung der Initialisierung des Suchelements und der Suchvorgänge. Sie werden über das globale __gcse-Objekt im JavaScript des Suchelements registriert. Unter Callbacks registrieren wird die Registrierung aller unterstützten Callbacks veranschaulicht.

Callbacks registrieren

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

Der Initialisierungs-Callback

Der Initialisierungs-Callback wird aufgerufen, bevor das JavaScript des Suchelements Suchelemente im DOM rendert. Wenn parsetags in __gcse auf explicit gesetzt ist, überlässt das Search Element-JavaScript das Rendern von Search Elements dem Initialisierungs-Callback (siehe Callbacks registrieren). Dies kann verwendet werden, um Elemente auszuwählen, die gerendert werden sollen, oder um das Rendern von Elementen zu verzögern, bis sie benötigt werden. Außerdem können die Attribute der Elemente überschrieben werden. So kann beispielsweise ein Suchfeld, das über das Steuerfeld oder HTML-Attribute für die Websuche konfiguriert ist, in ein Bildsuchfeld umgewandelt werden. Oder es kann festgelegt werden, dass Anfragen, die über ein Formular der Programmierbaren Suche gesendet werden, in einem Element ausgeführt werden, das nur Suchergebnisse enthält. Demo ansehen

Die Rolle des Initialisierungs-Callbacks wird durch den Wert des Attributs parsetags von __gcse gesteuert.

  • Wenn der Wert onload ist, werden alle Suchelemente auf der Seite automatisch vom JavaScript des Suchelements gerendert. Der Initialisierungs-Callback wird weiterhin aufgerufen, ist aber nicht für das Rendern der Suchelemente verantwortlich.
  • Wenn der Wert explicit ist, werden keine Suchelemente gerendert. Der Callback kann sie mit der Funktion render() selektiv rendern oder alle Suchelemente mit der Funktion go() rendern.

Im folgenden Code wird gezeigt, wie Sie ein Suchfeld zusammen mit Suchergebnissen in einem div mit dem explicit-Parsetag und dem Initialisierungs-Callback rendern:

Beispiel für Initialisierungs-Callback

Wir müssen ein <div> mit einem ID-Wert einfügen, an dem der Code für das Suchelement platziert werden soll:

    <div id="test"></div>
Fügen Sie dieses JavaScript nach dem <div> ein. Beachten Sie, dass darin auf test verwiesen wird, die id, die wir zur Identifizierung der <div> verwendet haben.
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
};

Fügen Sie diesen HTML-Code ein, um das Laden des Suchelements zu starten. Ersetzen Sie den cx-Wert in der src-Klausel durch Ihren eigenen cx-Wert.

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

Nach Callbacks suchen

Das JavaScript für das Suchelement unterstützt sechs Callbacks, die im Suchablauf ausgeführt werden. Die Such-Callbacks werden paarweise gesendet, ein Web-Such-Callback und ein passender Bild-Such-Callback:

  • Suche starten
    • Für die Bildersuche
    • Für die Websuche
  • Ergebnisse bereit
    • Für die Bildersuche
    • Für die Websuche
  • Gerenderte Ergebnisse
    • Für die Bildersuche
    • Für die Websuche

Wie beim Initialisierungs-Callback werden die Such-Callbacks mit Einträgen im __gcse-Objekt konfiguriert. Dies geschieht, wenn das JavaScript für das Suchelement gestartet wird. Änderungen an __gcse nach dem Start werden ignoriert.

Jeder dieser Callbacks erhält das gName für das Suchelement als Argument. gname ist nützlich, wenn eine Seite mehr als eine Suche enthält. Weisen Sie einem search-Element mit dem Attribut data-gname gname-Werte zu:

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

Wenn der gname nicht im HTML-Code angegeben ist, wird durch das JavaScript für das Suchelement ein Wert generiert, der bis zur Änderung des HTML-Codes beibehalten wird.

Callback zum Starten der Bild-/Websuche

Die Callbacks für den Suchstart werden unmittelbar aufgerufen, bevor das Search Element-JavaScript Suchergebnisse von seinem Server anfordert. Ein Beispiel wäre die Verwendung der lokalen Tageszeit, um Änderungen an der Anfrage zu steuern.

searchStartingCallback(gname, query)
gname
Identifizierungsstring des Suchelements
query
Vom Nutzer eingegebener Wert (möglicherweise durch JavaScript des Suchelements geändert).

Der Callback gibt den Wert zurück, der als Abfrage für diese Suche verwendet werden soll. Wenn ein leerer String zurückgegeben wird, wird der Rückgabewert ignoriert und der Aufrufer verwendet die unveränderte Abfrage.

Alternativ können Sie die Callback-Funktion in das __gcse-Objekt einfügen oder den Callback dynamisch mit JavaScript zum Objekt hinzufügen:

window.__gcse['searchCallbacks']['web']['starting'] = function(gname, query) {...};
Beispiel für einen Callback zum Starten der Suche

Im Beispiel für den Callback zum Starten der Suche in Beispiel für Callback zum Starten der Suche wird der Anfrage je nach Tageszeit entweder morning oder afternoon hinzugefügt.

Beispiel für einen Rückruf zum Starten der Suche
    const myWebSearchStartingCallback = (gname, query) => {
      const hour = new Date().getHours();
      return query + (hour < 12 ? ' morning' : ' afternoon');
    };
    window.myImageSearchStartingCallbackName = myWebSearchStartingCallback;

Installieren Sie diesen Callback in 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>

Callback für Bild-/Websuchergebnisse

Diese Rückrufe werden unmittelbar vor dem Rendern von Angeboten und Ergebnissen durch das JavaScript des Suchelements aufgerufen. Ein Beispiel für einen Anwendungsfall wäre ein Callback, mit dem Werbeaktionen und Ergebnisse in einem Stil gerendert werden, der mit der normalen Anpassung nicht angegeben werden kann.

resultsReadyCallback(gname, query, promos, results, div)
gname
Identifizierungsstring des Suchelements
query
Abfrage, mit der diese Ergebnisse generiert wurden
promos
ein Array von Angebots-Objekten, die den übereinstimmenden Angeboten für die Nutzeranfrage entsprechen. Definition des Angebotsobjekts
results
ein Array von Ergebnisobjekten. Definition des Ergebnisobjekts
div
ein HTML-Div, das im DOM positioniert ist und in dem das Suchelement normalerweise Werbeanzeigen und Suchergebnisse platziert. Normalerweise wird dieses Div-Element durch das JavaScript des Suchelements gefüllt. Mit diesem Callback kann das automatische Rendern von Ergebnissen jedoch beendet und dieses div-Element zum Rendern von Ergebnissen verwendet werden.

Wenn dieser Callback einen true-Wert zurückgibt, wird im JavaScript des Suchelements die Arbeit im Seitenfooter übersprungen.

Beispiel für einen Callback für „Ergebnisse bereit“

Der Beispiel-resultsReady-Callback in Beispiel für Callback „Ergebnisse bereit“ überschreibt die Standarddarstellung von Angeboten und Ergebnissen mit einem sehr einfachen Ersatz.

Beispiel für einen Rückruf, wenn Ergebnisse bereit sind
    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;
    };

Installieren Sie diesen Callback in 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>

Wie beim Callback für den Beginn der Suche ist das oben genannte nur eine von vielen Möglichkeiten, den Callback in das __gcse-Objekt einzufügen.

Gerenderter Callback für Bild-/Websuchergebnisse

Diese Callbacks werden unmittelbar vor dem Rendern der Seitenfußzeile durch das JavaScript des Suchelements aufgerufen. Beispiele für Anwendungsfälle sind ein Callback, der Ergebnisinhalt hinzufügt, der vom Suchelement nicht angezeigt wird, z. B. ein Kästchen Speichern oder Informationen, die nicht automatisch gerendert werden, oder ein Callback, der Schaltflächen Weitere Informationen hinzufügt.

Wenn ein Callback für gerenderte Ergebnisse Informationen benötigt, die in den Parametern promos und results des Callback für fertige Ergebnisse enthalten waren, kann es diese so übergeben:

callback(gname, query, promoElts, resultElts);
gname
Identifizierungsstring des Suchelements
query
-Suchstring.
promoElts
: Ein Array der DOM-Elemente, die Werbeaktionen enthalten.
resultElts
ein Array der DOM-Elemente, die Ergebnisse enthalten.

Es gibt keinen Rückgabewert.

Beispiel für den Callback „Results Rendered“

Im Beispiel-Callback resultsRendered in Beispiel für gerenderten Callback für Ergebnisse wird jeder Werbeaktion und jedem Ergebnis ein Platzhalter für das Kästchen Behalten hinzugefügt.

Beispiel für einen Callback für gerenderte Ergebnisse
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);
    }
  };

Installieren Sie diesen Callback in 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>

Wenn der Callback für gerenderte Ergebnisse Informationen benötigt, die an den Callback für bereite Ergebnisse übergeben wurden, können diese Daten zwischen den Callbacks übergeben werden. Das folgende Beispiel zeigt eine von vielen Möglichkeiten, einen Wert für die Bewertung von richSnippet aus dem Callback für fertige Ergebnisse an den Callback für gerenderte Ergebnisse zu übergeben.

Beispiel für einen „Results Ready“-Callback in Zusammenarbeit mit einem „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};
};
Installieren Sie diesen Callback mit Code wie diesem, während Sie __gcse einrichten:
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>
Beispiel für den Callback „Results Rendered“: Bestimmte Dateitypen in einem neuen Tab/Fenster öffnen

Mit dem folgenden Callback-Beispiel können Suchergebnislinks nach dem Rendern so geändert werden, dass eine bestimmte Datei (z. B. PDF, Excel oder Word) in einem neuen Tab/einer neuen Seite anstelle des aktuellen Fensters geöffnet wird. So wird das Surfen verbessert, wenn Nutzer eine Datei nicht im selben Fenster öffnen und die Ergebnisseite verlassen möchten.

In diesem Callback-Beispiel werden PDF-Links in den Suchergebnissen identifiziert und das Attribut target="_blank" für PDF-Links wird so festgelegt, dass sie in einem neuen Tab geöffnet werden. Mit einem MutationObserver werden neue Ergebnisse dynamisch verarbeitet, wenn die Seite aktualisiert wird. Hinweis:Sie können .pdf in handleSearchResults nach Bedarf durch einen beliebigen anderen Dateityp ersetzen.

Dieses Callback-Beispiel funktioniert nicht bei Google Hosted- und Overlay-Layouts.

Bestimmte Dateitypen in einem neuen Tab/Fenster öffnen
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.');
  }
};

Installieren Sie diesen Callback in 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>

Weitere Beispiele für Rückrufe

Weitere Callback-Beispiele finden Sie im Dokument Weitere Callback-Beispiele.

Eigenschaften für Angebote und Ergebnisse

Dies sind die Eigenschaften der Objekte promotion und result in JSDoc-Notation. Hier finden Sie eine Liste aller Attribute, die vorhanden sein können. Das Vorhandensein vieler Eigenschaften hängt von den Details des Angebots oder Suchergebnisses ab.

Angebotseigenschaften
{
  content: string,
  image: {
    height: number,
    url: string,
    width: number,
  },
  title: string,
  url: string,
  visibleUrl: string,
}
Eigenschaften des Ergebnisobjekts
{
  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 in results hat den losen Typ eines Arrays von Objekten. Die Werte der Einträge in diesem Array werden durch die strukturierten Daten auf der Webseite für jedes Suchergebnis bestimmt. Auf einer Rezensionswebsite könnten beispielsweise strukturierte Daten enthalten sein, mit denen dieser Array-Eintrag zu richSnippet hinzugefügt wird:

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

Programmable Search Element Control API (V2)

Das google.search.cse.element-Objekt stellt die folgenden statischen Funktionen bereit:

Funktion Beschreibung
.render(componentConfig, opt_componentConfig) Rendert ein Suchelement.

Parameter

Name Beschreibung
componentConfig Die Konfiguration für eine Programmable Search Element-Komponente. Gibt Folgendes an:
  • div (String|Element): Die id des <div> oder des div-Elements, in dem das Element der programmierbaren Suche gerendert werden soll.
  • tag (String): Der Typ der zu rendernden Komponente(n). Wenn opt_componentConfig angegeben wird, muss der Wert des Attributs tag searchbox sein. Zulässige Werte:
    • search: Ein Suchfeld und Suchergebnisse, die zusammen angezeigt werden
    • searchbox: Eine Suchfeldkomponente eines programmierbaren Suchelements.
    • searchbox-only: Ein eigenständiges Suchfeld, das im zweispaltigen Layout mit einem von opt_componentConfig angegebenen Block mit Suchergebnissen kombiniert wird.
    • searchresults-only: Ein eigenständiger Block mit Suchergebnissen. Suchen werden durch einen in eine URL eingebetteten Suchparameter oder durch die programmatische Ausführung ausgelöst.
  • gname (String): (Optional) Ein eindeutiger Name für diese Komponente. Wenn nicht angegeben, wird automatisch ein gname für die Programmable Search Engine generiert.
  • attributes (Objekt): Optionale Attribute in Form eines Schlüssel/Wert-Paars. Unterstützte Attribute:
opt_componentConfig Optional. Zweites Argument für die Konfiguration der Komponente. Wird im Modus TWO_COLUMN verwendet, um die Komponente searchresults bereitzustellen. Gibt Folgendes an:
  • div (String): Die id des <div>- oder div-Elements, in dem das Element gerendert werden soll.
  • tag (String): Der Typ der zu rendernden Komponente(n). Wenn opt_componentConfig angegeben wird, muss der Wert des Attributs tag searchresults sein. Außerdem muss der Wert des Attributs tag von componentConfig searchbox sein.
  • gname (String): (Optional) Ein eindeutiger Name für diese Komponente. Wenn nicht angegeben, wird automatisch eine gname für diese Komponente generiert. Wenn angegeben, muss er mit dem gname in componentConfig übereinstimmen.
  • attributes (Objekt): Optionale Attribute in Form eines Schlüssel/Wert-Paars. Unterstützte Attribute.
.go(opt_container) Rendert alle Search Element-Tags/-Klassen im angegebenen Container.

Parameter

Name Beschreibung
opt_container Der Container, der die zu rendernden Komponenten des Suchelements enthält. Geben Sie entweder die ID des Containers (String) oder das Element selbst an. Wenn diese Option ausgelassen wird, werden alle Komponenten des programmierbaren Suchelements innerhalb des body-Tags der Seite gerendert.
.getElement(gname) Ruft das Elementobjekt nach gname ab. Wenn sie nicht gefunden wird, wird „null“ zurückgegeben.

Das zurückgegebene element-Objekt hat die folgenden Attribute:

  • gname: Der Name des Elementobjekts. Wenn nicht angegeben, wird von der Programmable Search Engine automatisch ein gname für das Objekt generiert. Weitere Informationen
  • type: Der Elementtyp.
  • uiOptions: Die endgültigen Attribute, die zum Rendern des Elements verwendet werden.
  • execute – function(string): Führt eine programmatische Abfrage aus.
  • prefillQuery – function(string): Füllt das Suchfeld mit einem Abfragestring vor, ohne die Abfrage auszuführen.
  • getInputQuery – function(): Ruft den aktuellen Wert ab, der im Eingabefeld angezeigt wird.
  • clearAllResults – function(): Löscht das Steuerelement, indem alles außer dem Suchfeld (falls vorhanden) ausgeblendet wird.

Mit dem folgenden Code wird die Abfrage „news“ im Suchelement „element1“ ausgeführt:

var element = google.search.cse.element.getElement('element1');
            element.execute('news');
.getAllElements() Gibt eine Karte aller erfolgreich erstellten Elementobjekte zurück, die nach gname sortiert sind.