Programmable Search Element Control API

Anda dapat menyematkan komponen Programmable Search Engine (kotak penelusuran dan halaman hasil penelusuran) di laman web dan aplikasi web lainnya menggunakan markup HTML. Programmable Search Engine ini terdiri dari komponen yang dirender berdasarkan setelan yang disimpan oleh server Programmable Search, beserta segala penyesuaian yang Anda lakukan.

Semua JavaScript dimuat secara asinkron, yang memungkinkan halaman web Anda terus memuat saat browser mengambil JavaScript Programmable Search Engine.

Pengantar

Dokumen ini menyediakan model dasar untuk menambahkan Programmable Search Engine ke laman web, beserta penjelasan tentang komponen yang dapat dikonfigurasi dan JavaScript API yang fleksibel.

Cakupan

Dokumen ini menjelaskan cara menggunakan fungsi dan properti khusus untuk Programmable Search Engine Control API.

Kompatibilitas browser

Daftar browser yang didukung oleh Programmable Search Engine dapat ditemukan di sini.

Audiens

Dokumentasi ini ditujukan bagi developer yang ingin menambahkan Google Programmable Fungsi penelusuran ke halaman mereka.

Elemen Programmable Search

Anda dapat menggunakan markup HTML untuk menambahkan Elemen Programmable Search ke halaman. Masing-masing setidaknya terdiri dari satu komponen: kotak penelusuran, blok penelusuran hasil, atau keduanya. Kotak penelusuran menerima input pengguna di salah satu opsi berikut cara:

  • Kueri penelusuran yang diketik di kolom input teks
  • String kueri yang disematkan di URL
  • Eksekusi terprogram

Selain itu, blok hasil penelusuran menerima input dalam cara berikut:

  • String kueri yang disematkan di URL
  • Eksekusi terprogram

Jenis Elemen Programmable Search berikut tersedia:

Jenis elemen Komponen Deskripsi
standar <div class="gcse-search"> Kotak pencarian dan hasil pencarian, ditampilkan dalam <div> yang sama.
dua kolom <div class="gcse-searchbox"> dan <div class="gcse-searchresults"> Tata letak dua kolom dengan hasil penelusuran di satu sisi dan kotak penelusuran di sisi yang lain. Jika Anda berencana untuk menyisipkan beberapa elemen dalam mode dua kolom di halaman web, Anda dapat menggunakan atribut gname untuk menyambungkan kotak penelusuran dengan blok hasil penelusuran.
hanya kotak penelusuran <div class="gcse-searchbox-only"> Kotak penelusuran tersendiri.
searchresults-only <div class="gcse-searchresults-only"> Blok hasil penelusuran yang berdiri sendiri.

Anda dapat menambahkan berapa pun elemen penelusuran yang valid ke halaman web Anda. Untuk dua kolom semua komponen yang diperlukan (kotak penelusuran dan saluran blok hasil) harus ada.

Berikut adalah contoh Elemen Penelusuran sederhana:

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

Membuat berbagai opsi tata letak menggunakan Elemen Programmable Search

Opsi tata letak berikut tersedia di halaman Tampilan dan Nuansa panel kontrol Programmable Search Engine. Berikut adalah beberapa panduan umum tentang cara menyusun opsi tata letak menggunakan Elemen Programmable Search. Untuk melihat demo opsi ini, klik link.

Opsi Komponen
Lebar penuh <div class="gcse-search">
Rapat <div class="gcse-search">
Dua kolom <div class="gcse-searchbox">, <div class="gcse-searchresults">
Dua halaman <div class="gcse-searchbox-only"> di halaman pertama, <div class="gcse-searchresults-only"> (atau komponen lainnya) di halaman kedua.
Hasil saja <div class="gcse-searchresults-only">
Dihosting Google <div class="gcse-searchbox-only">

Informasi selengkapnya tentang opsi tata letak.

Menyesuaikan Elemen Programmable Search

Untuk menyesuaikan warna, font, atau gaya link, buka halaman Tampilan dan Nuansa di mesin telusur yang dapat diprogram.

Anda dapat menggunakan atribut opsional untuk menimpa konfigurasi yang dibuat di Mesin Telusur yang Dapat Diprogram panel kontrol. Hal ini memungkinkan Anda membuat pengalaman penelusuran khusus halaman. Misalnya, kode berikut untuk membuat kotak penelusuran yang membuka halaman hasil (http://www.example.com?search=lady+gaga) di jendela baru. Nilai atribut Atribut queryParameterName, bersama dengan string kueri pengguna, adalah yang digunakan untuk membuat URL hasil.

Perlu diketahui bahwa atribut queryParameterName diawali dengan data-. Awalan ini wajib ada untuk semua atribut.

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

Jika Anda telah menggunakan panel kontrol Programmable Search Engine untuk mengaktifkan fitur seperti pelengkapan otomatis atau penyempurnaan, Anda dapat menggunakan atribut untuk menyesuaikan fitur-fitur tersebut. Setiap penyesuaian yang Anda tetapkan menggunakan atribut ini akan menggantikan pengaturan yang dibuat di panel kontrol. Contoh berikut membuat Elemen Penelusuran dua kolom dengan fitur berikut:

  • Pengelolaan histori diaktifkan
  • Jumlah maksimum pelengkapan otomatis yang ditampilkan ditetapkan ke 5
  • Penajaman ditampilkan sebagai link.

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

Atribut yang didukung

Atribut Jenis Deskripsi Komponen
Umum
gname String (Opsional) Nama untuk objek Elemen Penelusuran. Nama digunakan untuk mengambil komponen terkait menurut nama, atau untuk menyambungkan searchbox komponen dengan komponen searchresults. Jika tidak disediakan, Programmable Search Engine akan otomatis menghasilkan gname, berdasarkan urutan komponen pada halaman web. Misalnya, model pertama searchbox-only memiliki gname "kotak penelusuran-saja0" dan yang kedua memiliki gname "seachbox-only1", dan seterusnya. Perhatikan bahwa gname yang dibuat secara otomatis untuk komponen dalam tata letak dua kolom akan menjadi two-column. Contoh berikut menggunakan gname storesearch untuk menautkan searchbox komponen dengan komponen searchresults:
<div class="gcse-searchbox" data-gname="storesearch"></div>
<div class="gcse-searchresults" data-gname="storesearch"></div>

Saat mengambil objek, jika lebih dari satu komponen memiliki komponen yang sama gname, Programmable Search Engine akan menggunakan komponen terakhir di kami.

Semua
autoSearchOnLoad Boolean Menentukan apakah akan menjalankan penelusuran berdasarkan kueri yang disematkan dalam URL dari halaman yang dimuat. Perhatikan bahwa string kueri harus ada di URL untuk menjalankan penelusuran otomatis. Default: true. Semua
enableHistory Boolean Jika true, akan mengaktifkan pengelolaan histori untuk Kembali browser dan tombol Teruskan. Lihat demo.

kotak penelusuran

hanya kotak penelusuran

queryParameterName String Nama parameter kueri—misalnya, q (default) atau query. Ini akan disematkan dalam URL (misalnya, http://www.example.com?q=lady+gaga). Perhatikan bahwa menentukan nama parameter kueri saja tidak akan memicu penelusuran otomatis saat pemuatan. Sebuah kueri string harus ada di URL untuk menjalankan penelusuran otomatis. Semua
resultsUrl URL URL dari halaman hasil. (Defaultnya adalah halaman yang dihosting Google.) hanya kotak penelusuran
newWindow Boolean Menentukan apakah halaman hasil dibuka di jendela baru. Default: false. hanya kotak penelusuran
ivt Boolean

Parameter ini memungkinkan Anda memberikan boolean yang memberi tahu Google bahwa Anda ingin mengizinkan iklan yang menggunakan cookie khusus traffic tidak valid & penyimpanan lokal dalam traffic tanpa izin cookie.

true Jika parameter ini tidak ada atau Anda menetapkannya ke "true", kita akan mengatur cookie khusus traffic tidak valid dan menggunakan penyimpanan lokal hanya pada traffic yang diberi izin.

false Jika Anda menetapkan parameter ini ke "false" kita akan menetapkan cookie khusus traffic dan menggunakan penyimpanan lokal pada traffic yang diberi izin dan tidak diberi izin cookie.

Default: false

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

hasil penelusuran

searchresults-only

mobileLayout String

Menentukan apakah gaya tata letak seluler harus digunakan untuk perangkat seluler.

enabled Menggunakan tata letak seluler hanya untuk perangkat seluler.

disabled Tidak menggunakan tata letak seluler untuk perangkat apa pun.

forced Menggunakan tata letak seluler untuk semua perangkat.

Default: enabled

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

Semua
Pelengkapan Otomatis
enableAutoComplete Boolean Hanya tersedia jika pelengkapan otomatis telah diaktifkan di panel kontrol Programmable Search Engine. true mengaktifkan pelengkapan otomatis. Semua
autoCompleteMaxCompletions Bilangan Bulat Jumlah maksimum pelengkapan otomatis yang akan ditampilkan.

kotak penelusuran

hanya kotak penelusuran

autoCompleteMaxPromotions Bilangan Bulat Jumlah maksimum promosi yang akan ditampilkan di pelengkapan otomatis.

kotak penelusuran

hanya kotak penelusuran

autoCompleteValidLanguages String Daftar bahasa yang dipisahkan koma yang seharusnya dilengkapi pelengkapan otomatis mengaktifkan pembuatan versi. Bahasa yang didukung.

kotak penelusuran

hanya kotak penelusuran

Peningkatan
defaultToRefinement String Hanya tersedia jika penyempitan telah dibuat di Panel kontrol Programmable Search Engine. Menentukan label penyempurnaan default display.Catatan: Atribut ini tidak didukung untuk tata letak yang Dihosting Google. Semua
refinementStyle String Nilai yang dapat diterima adalah tab (default) dan link. link hanya didukung jika penelusuran gambar dinonaktifkan, atau jika penelusuran gambar diaktifkan, tetapi penelusuran web dinonaktifkan.

hasil penelusuran

searchresults-only

Penelusuran gambar
enableImageSearch Boolean Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Jika true, mengaktifkan penelusuran gambar. Hasil gambar akan ditampilkan di tab terpisah.

hasil penelusuran

searchresults-only

defaultToImageSearch Boolean Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Jika true, halaman hasil penelusuran akan menampilkan hasil penelusuran gambar secara {i>default<i}. Hasil web akan tersedia di tab terpisah.

Semua
imageSearchLayout String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Menentukan tata letak halaman hasil penelusuran gambar. Nilai yang dapat diterima adalah classic, column, atau popup.

hasil penelusuran

searchresults-only

imageSearchResultSetSize Bilangan Bulat, String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Menentukan ukuran maksimum kumpulan hasil penelusuran untuk penelusuran gambar. Misalnya, large, small, filtered_cse, 10.

Semua
image_as_filetype String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Membatasi hasil ke file dari ekstensi yang ditentukan.

Ekstensi yang didukung adalah jpg, gif, png, bmp, svg, webp, ico, raw.

Semua

image_as_oq String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Filter hasil penelusuran menggunakan OR Logis.

Contoh penggunaan jika Anda ingin hasil penelusuran yang menyertakan "term1" atau "term2":<div class="gcse-search" data-image_as_oq="term1 term2"></div>

Semua

image_as_rights String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Filter berdasarkan pemberian lisensi.

Nilai yang didukung adalah cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived, dan kombinasinya.

Lihat kombinasi standar.

Semua

image_as_sitesearch String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Batasi hasil ke halaman dari situs tertentu.

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

Semua

image_colortype String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Membatasi penelusuran ke gambar hitam putih (mono), hitam putih, atau berwarna. Nilai yang didukung adalah mono, gray, color.

Semua

image_cr String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Membatasi hasil penelusuran ke dokumen yang berasal dari negara tertentu.

Nilai yang didukung

Semua

image_dominantcolor String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Membatasi penelusuran ke gambar dengan warna dominan tertentu. Nilai yang didukung adalah red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown.

Semua

image_filter String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Pemfilteran otomatis hasil penelusuran.

Nilai yang didukung: 0/1

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

Semua

image_gl String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine. Tingkatkan hasil penelusuran yang negara asalnya cocok dengan nilai parameter.

Nilai yang didukung

Semua

image_size String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Menampilkan gambar dengan ukuran tertentu, dengan ukuran dapat berupa salah satu dari: icon, small, medium, large, xlarge, xxlarge, atau huge.

Semua

image_sort_by String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Urutkan hasil menggunakan tanggal atau konten terstruktur lainnya.

Untuk mengurutkan berdasarkan relevansi, gunakan string kosong (image_sort_by="").

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

Semua

image_type String Hanya tersedia jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

Membatasi penelusuran ke gambar dengan jenis tertentu. Nilai yang didukung adalah clipart (Gambar klip), face (Wajah orang), lineart (Gambar garis), stock (Foto stok), photo (Foto), dan animated (GIF Animasi).

Semua

Penelusuran web
disableWebSearch Boolean Jika true, akan menonaktifkan penelusuran web. Biasanya digunakan hanya jika penelusuran gambar telah diaktifkan di panel kontrol Programmable Search Engine.

hasil penelusuran

searchresults-only

webSearchQueryAddition String Istilah tambahan yang ditambahkan ke kueri penelusuran menggunakan OR logis.

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

Semua
webSearchResultSetSize Bilangan Bulat, String Ukuran maksimum kumpulan hasil. Berlaku untuk baik penelusuran gambar maupun penelusuran web. Secara {i>default<i} tergantung pada tata letak dan apakah Programmable Search Engine dikonfigurasi untuk menelusuri seluruh web atau hanya ditentukan di situs Anda. Nilai yang dapat diterima mencakup:
  • Bilangan bulat dari 1-20
  • small: meminta set hasil kecil, biasanya 4 hasil per halaman.
  • large: meminta set hasil yang besar, biasanya 8 hasil per halaman.
  • filtered_cse: meminta hingga 10 hasil per halaman, untuk maksimum 10 halaman atau 100 hasil.
Semua
webSearchSafesearch String Menentukan jika SafeSearch adalah diaktifkan untuk hasil penelusuran. Nilai yang diterima adalah off dan active. Semua
as_filetype String Membatasi hasil ke file dari ekstensi yang ditentukan. Daftar jenis file yang dapat diindeks oleh Google dapat ditemukan di Pusat Bantuan Search Console.

Semua

as_oq String Filter hasil penelusuran menggunakan OR Logis.

Contoh penggunaan jika Anda ingin hasil penelusuran yang menyertakan "term1" atau "term2":<div class="gcse-search" data-as_oq="term1 term2"></div>

Semua
as_rights String Filter berdasarkan pemberian lisensi.

Nilai yang didukung adalah cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived, dan kombinasinya.

Lihat https://wiki.creativecommons.org/wiki/CC_Search_integration untuk mengetahui kombinasi standar.

Semua

as_sitesearch String Batasi hasil ke halaman dari situs tertentu.

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

Semua
cr String Membatasi hasil penelusuran ke dokumen yang berasal dari negara tertentu.

Nilai yang didukung

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

Semua
filter String Pemfilteran otomatis hasil penelusuran.

Nilai yang didukung: 0/1

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

Semua
gl String Tingkatkan hasil penelusuran yang negara asalnya cocok dengan nilai parameter.

Tindakan ini hanya akan berfungsi dengan setelan nilai bahasa.

Nilai yang didukung

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

Semua
lr String Membatasi hasil penelusuran ke dokumen yang ditulis dalam bahasa tertentu.

Nilai yang didukung

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

Semua
sort_by String Urutkan hasil menggunakan tanggal atau konten terstruktur lainnya. Nilai atribut harus berupa salah satu opsi yang disediakan di setelan Pengurutan Hasil dari platform programmable Search.

Untuk mengurutkan berdasarkan relevansi, gunakan string kosong (sort_by="").

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

Semua
Hasil penelusuran
enableOrderBy Boolean Memungkinkan pengurutan hasil menurut relevansi, tanggal, atau label. Semua
linkTarget String Menetapkan target link. Default: _blank.

hasil penelusuran

searchresults-only

noResultsString String Menentukan teks default yang akan ditampilkan jika tidak ada hasil yang cocok dengan kueri. String hasil default bisa digunakan untuk menampilkan string yang dilokalkan di semua bahasa yang didukung, sedangkan yang disesuaikan tidak.

hasil penelusuran

searchresults-only

resultSetSize Bilangan Bulat, String Ukuran maksimum kumpulan hasil. Misalnya large, small, filtered_cse, 10. Tujuan secara default tergantung pada tata letak dan apakah mesin telah dikonfigurasi untuk mencari seluruh web atau hanya situs tertentu. Semua
safeSearch String Menentukan jika SafeSearch diaktifkan untuk penelusuran web dan gambar. Nilai yang diterima adalah off dan active. Semua

Callback

Diagram Urutan Callback
diagram urutan callback dari JavaScript Elemen Penelusuran

Callback mendukung kontrol mendetail atas inisialisasi elemen penelusuran dan proses penelusuran. Cookie ini terdaftar dengan JavaScript Elemen Penelusuran melalui __gcse global . Register Callback mengilustrasikan pendaftaran semua callback yang didukung.

Mendaftarkan Callback

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

Callback Inisialisasi

Callback inisialisasi dipanggil sebelum JavaScript Elemen Penelusuran merender penelusuran elemen di DOM. Jika parsetags disetel ke explicit di __gcse, JavaScript Elemen Penelusuran menyerahkan proses rendering Elemen Penelusuran ke callback inisialisasi (seperti yang ditunjukkan dalam Register Callback). Ini mungkin digunakan untuk memilih elemen yang akan dirender, atau untuk menunda elemen rendering sampai elemen tersebut diperlukan. {i>Function<i} ini juga bisa mengganti atribut elemen; misalnya, dapat mengubah kotak penelusuran yang dikonfigurasi melalui Panel Kontrol atau atribut HTML menjadi default ke melakukan penelusuran di kotak penelusuran gambar, atau menentukan bahwa kueri yang dikirimkan melalui formulir Programmable Search Engine dieksekusi dalam elemen {i>searchresults-only<i}. Lihat demo.

Peran callback inisialisasi dikontrol oleh nilai parsetags properti __gcse.

  • Jika nilainya adalah onload, Elemen Penelusuran JavaScript merender semua Elemen Penelusuran di halaman secara otomatis. Callback inisialisasi adalah tetap dipanggil, tetapi tidak bertanggung jawab untuk merender Elemen Penelusuran.
  • Jika nilainya adalah explicit, JavaScript Elemen Penelusuran tidak dirender Elemen Penelusuran. Callback dapat merendernya secara selektif menggunakan Fungsi render(), atau merender semua Elemen Penelusuran dengan fungsi go()

Kode berikut menunjukkan cara merender kotak penelusuran, bersama dengan hasil penelusuran, dalam bentuk div, menggunakan parsetag dan callback inisialisasi explicit:

Contoh Callback Inisialisasi

Kita perlu menyertakan <div> dengan nilai ID di mana kita ingin kode Elemen Penelusuran:

    <div id="test"></div>
Tambahkan JavaScript ini setelah <div>. Perhatikan bahwa merujuk ke test, id yang kita gunakan untuk mengidentifikasi <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
};

Sertakan HTML ini untuk mulai memuat Elemen Penelusuran. Ganti nilai cx di bagian Klausa src dengan cx Anda sendiri.

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

Callback Penelusuran

JavaScript Elemen Penelusuran mendukung enam callback yang beroperasi dalam alur kontrol penelusuran. Callback penelusuran tersedia dalam pasangan, callback penelusuran web dan callback penelusuran gambar yang cocok:

  • Awal Penelusuran
    • Untuk penelusuran gambar
    • Untuk penelusuran web
  • Hasil sudah siap
    • Untuk penelusuran gambar
    • Untuk penelusuran web
  • Hasil dirender
    • Untuk penelusuran gambar
    • Untuk penelusuran web

Seperti callback inisialisasi,callback penelusuran dikonfigurasi menggunakan entri dalam objek __gcse. Hal ini dilakukan sebagai Elemen Penelusuran JavaScript dimulai. Perubahan pada __gcse setelah startup akan diabaikan.

Setiap callback ini diberi gName untuk Elemen Penelusuran sebagai argumen. gname berguna jika halaman berisi lebih dari satu penelusuran. Lakukan penelusuran elemen nilai gname menggunakan atribut data-gname:

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

Jika HTML tidak mengidentifikasi gname, JavaScript Elemen Penelusuran akan menghasilkan nilai yang akan tetap konsisten hingga HTML dimodifikasi.

Callback Memulai Penelusuran Gambar/Web

Callback awal penelusuran dipanggil tepat sebelum permintaan JavaScript Elemen Penelusuran hasil penelusuran dari servernya. Sebuah contoh kasus penggunaan adalah menggunakan waktu lokal untuk mengontrol perubahan pada kueri.

searchStartingCallback(gname, query)
gname
String pengidentifikasi Elemen Penelusuran
query
nilai yang dimasukkan oleh pengguna (mungkin diubah oleh penelusuran elemen JavaScript.)

Callback menampilkan nilai yang harus digunakan sebagai kueri untuk penelusuran ini. Jika metode tersebut menampilkan string kosong, nilai yang ditampilkan akan diabaikan dan pemanggil menggunakan kueri yang tidak diubah.

Atau, Anda dapat menempatkan fungsi callback dalam objek __gcse atau menambahkan callback ke objek secara dinamis dengan JavaScript:

window.__gcse['searchCallbacks']['web']['starting'] = function(gname, query) {...};
Contoh Callback Memulai Penelusuran

Contoh callback awal penelusuran di Contoh Callback Awal Penelusuran menambahkan morning atau afternoon ke kueri, bergantung pada waktu.

Contoh Callback Awal Penelusuran
    const myWebSearchStartingCallback = (gname, query) => {
      const hour = new Date().getHours();
      return query + (hour < 12 ? ' morning' : ' afternoon');
    };
    window.myImageSearchStartingCallbackName = myWebSearchStartingCallback;

Instal callback ini di 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 Siap Hasil Penelusuran Gambar/Web

Callback ini dipanggil tepat sebelum JavaScript Elemen Penelusuran merender promosi dan hasil pengujian tersebut. Contoh kasus penggunaan adalah callback yang merender promosi dan hasil dalam gaya yang tidak dapat ditentukan dengan penyesuaian normal.

resultsReadyCallback(gname, query, promos, results, div)
gname
String pengidentifikasi Elemen Penelusuran
query
kueri yang menampilkan hasil ini
promos
array objek promosi, yang sesuai dengan promosi untuk terhadap kueri pengguna. Lihat definisi objek promosi.
results
array objek hasil. Lihat definisi objek hasil.
div
div HTML diposisikan di DOM tempat Elemen Penelusuran biasanya promosi tempat dan hasil penelusuran. Biasanya, JavaScript Elemen Penelusuran akan menangani mengisi div ini, tetapi callback ini dapat memilih untuk menghentikan rendering hasil secara otomatis dan menggunakan div ini untuk merender hasilnya.

Jika callback ini menampilkan nilai true, JavaScript Elemen Penelusuran akan beralih ke nilai tersebut pekerjaan {i>page-footer<i}.

Contoh Callback Hasil Siap

Contoh callback resultsReady di Contoh Callback Siap Hasil menggantikan presentasi default promosi dan hasil dengan penggantian yang sangat mudah.

Contoh Callback Hasil Siap
    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;
    };

Instal callback ini di 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>

Seperti callback yang memulai penelusuran, hal di atas merupakan salah satu dari banyak cara untuk menempatkan callback dalam Objek __gcse.

Callback Hasil Penelusuran Gambar/Web

Callback ini dipanggil tepat sebelum JavaScript Elemen Penelusuran merender halaman {i>footer.<i} Contoh kasus penggunaan akan menyertakan callback yang menambahkan konten hasil yang penelusuran tidak ditampilkan, seperti kotak centang simpan ini atau informasi yang tidak dirender secara otomatis, atau callback yang menambahkan tombol untuk informasi selengkapnya.

Jika callback yang dirender memerlukan informasi yang ada di promos dan results dari callback siap hasil, parameter tersebut dapat meneruskannya di antara parameter tersebut, seperti ini:

callback(gname, query, promoElts, resultElts);
gname
String pengidentifikasi Elemen Penelusuran
query
string penelusuran.
promoElts
array elemen DOM yang berisi promosi.
resultElts
array elemen DOM yang berisi hasil.

Tidak ada nilai yang ditampilkan.

Contoh Callback Hasil yang Dirender

Contoh callback resultsRendered di Contoh Callback yang Dirender menambahkan Keep tiruan ke setiap promosi dan hasil.

Contoh Callback yang Dirender Hasil
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);
    }
  };

Instal callback ini di 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>

Jika callback hasil yang dirender memerlukan informasi yang diteruskan ke callback siap hasil, objek tersebut dapat meneruskan data tersebut antara semua callback. Contoh berikut menunjukkan salah satu dari banyak cara untuk meneruskan nilai rating dari richSnippet dari callback siap hasil ke hasil yang dirender Callback.

Contoh Callback Siap Pakai Hasil yang Bekerja Sama dengan Callback Hasil yang Dirender
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};
};
Instal callback ini menggunakan kode seperti ini saat menyiapkan __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>

Contoh Callback Lainnya

Contoh callback tambahan dapat ditemukan di Dokumen Contoh Callback Lainnya.

Properti Promosi dan Hasil

Menggunakan notasi JSDoc, berikut adalah properti dari objek promotion dan result. Di sini, kita mencantumkan semua properti yang mungkin ada. Adanya banyak properti bergantung pada detail promosi atau hasil penelusuran.

Properti Promosi
{
  content: string,
  image: {
    height: number,
    url: string,
    width: number,
  },
  title: string,
  url: string,
  visibleUrl: string,
}
Properti Objek Hasil
{
  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 dalam results memiliki jenis array bebas objek terstruktur dalam jumlah besar. Nilai entri dalam himpunan (array) ini dikontrol oleh atribut data terstruktur yang ditemukan di laman web untuk setiap hasil pencarian. Misalnya, situs web ulasan mungkin menyertakan data terstruktur yang menambahkan entri array ini ke richSnippet:

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

Programmable Search Element Control API (V2)

Objek google.search.cse.element memublikasikan fungsi statis:

Fungsi Deskripsi
.render(componentConfig, opt_componentConfig) Merender Elemen Penelusuran.

Parameter

Nama Deskripsi
componentConfig Konfigurasi untuk komponen Programmable Search Element. Menentukan hal berikut:
  • div (string|Elemen): id dari elemen <div> atau div tempat Elemen Programmable Search akan dirender.
  • tag (string): Jenis komponen yang akan dirender. (Jika opt_componentConfig diberikan, nilai atribut tag harus searchbox.) Nilai yang diizinkan adalah:
    • search: Kotak penelusuran dan hasil penelusuran yang ditampilkan bersamaan
    • searchbox: Komponen kotak penelusuran untuk Elemen Programmable Search.
    • searchbox-only: Kotak penelusuran terpisah, yang akan dipasangkan dengan blok hasil penelusuran yang ditentukan oleh opt_componentConfig dalam tata letak dua kolom.
    • searchresults-only: Blok hasil penelusuran yang berdiri sendiri. Penelusuran dipicu oleh parameter kueri yang disematkan dalam URL, atau oleh eksekusi terprogram.
  • gname (string): (Opsional) Nama unik untuk komponen ini. Jika tidak disediakan, Programmable Search Engine akan otomatis membuat gname.
  • attributes (Objek): Atribut opsional dalam bentuk pasangan nilai kunci. Atribut yang didukung.
opt_componentConfig Opsional. Argumen konfigurasi komponen kedua. Digunakan di TWO_COLUMN mode untuk menyediakan komponen searchresults. Menentukan hal berikut:
  • div (string): id dari <div> atau elemen div tempat elemen akan dirender.
  • tag (string): Jenis komponen yang akan dirender. Kapan opt_componentConfig diberikan, nilai tag harus searchresults. Selain itu, nilai atribut Atribut tag dari componentConfig harus searchbox.
  • gname (string): (Opsional) Nama unik untuk komponen ini. Jika tidak Programmable Search Engine akan otomatis menghasilkan gname untuk komponen. Jika disediakan, nilai ini harus cocok dengan gname di componentConfig.
  • attributes (Objek): Atribut opsional dalam bentuk key:value berpasangan. Atribut yang didukung.
.go(opt_container) Merender semua tag/class Elemen Penelusuran dalam penampung yang ditentukan.

Parameter

Nama Deskripsi
opt_container Penampung yang berisi komponen Elemen Penelusuran yang akan dirender. Menentukan ID penampung (string) atau elemen itu sendiri. Jika dihilangkan, semua komponen Programmable Search Element di dalam Tag body akan dirender.
.getElement(gname) Mendapatkan objek elemen dengan gname. Jika tidak ditemukan, tampilkan null.

Objek element yang ditampilkan memiliki atribut berikut:

  • gname: Nama objek elemen. Jika tidak disediakan, Programmable Search Engine akan otomatis menghasilkan gname untuk objek tersebut. Informasi selengkapnya.
  • type: Jenis elemen.
  • uiOptions: Atribut akhir yang digunakan untuk merender elemen.
  • execute - fungsi(string): Mengeksekusi kueri terprogram.
  • prefillQuery - fungsi(string): Mengisi otomatis kotak penelusuran dengan kueri {i>string<i} tanpa mengeksekusi kueri.
  • getInputQuery - function(): Mendapatkan nilai saat ini yang ditampilkan dalam input .
  • clearAllResults - function(): Menghapus kontrol dengan menyembunyikan semuanya, kecuali kotak penelusuran, jika ada.

Kode berikut menjalankan kueri "news" dalam Elemen Penelusuran "element1":

var element = google.search.cse.element.getElement('element1');
            element.execute('news');
.getAllElements() Menampilkan peta semua objek elemen yang berhasil dibuat, dengan kunci gname.