คุณฝังคอมโพเนนต์ของ Programmable Search Engine (ช่องค้นหาและหน้าผลการค้นหา) ในหน้าเว็บและเว็บแอปพลิเคชันอื่นๆ ได้โดยใช้มาร์กอัป HTML องค์ประกอบ Programmable Search Engine เหล่านี้ประกอบด้วยคอมโพเนนต์ที่แสดงผลตามการตั้งค่าที่จัดเก็บไว้โดย เซิร์ฟเวอร์ Programmable Search พร้อมกับการปรับแต่งที่คุณทำ
ระบบจะโหลด JavaScript ทั้งหมดแบบไม่พร้อมกัน ซึ่งจะช่วยให้หน้าเว็บโหลดต่อไปได้ในขณะที่เบราว์เซอร์ดึงข้อมูล JavaScript ของ Programmable Search Engine
บทนำ
เอกสารนี้มีโมเดลพื้นฐานสำหรับการเพิ่มองค์ประกอบ Programmable Search Engine ลงในหน้าเว็บ พร้อมคำอธิบายเกี่ยวกับคอมโพเนนต์ที่กำหนดค่าได้และ JavaScript API ที่ยืดหยุ่นขององค์ประกอบ
ขอบเขต
เอกสารนี้อธิบายวิธีใช้ฟังก์ชันและพร็อพเพอร์ตี้ที่เฉพาะเจาะจงสำหรับ Programmable Search Engine Control API
ความเข้ากันได้กับเบราว์เซอร์
ดูรายการเบราว์เซอร์ที่ Programmable Search Engine รองรับได้ที่นี่
ผู้ชม
เอกสารนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการเพิ่มฟังก์ชัน Google Programmable Search ลงในหน้าเว็บของตน
องค์ประกอบ Programmable Search
คุณใช้มาร์กอัป HTML เพื่อเพิ่มองค์ประกอบ Programmable Search ลงในหน้าเว็บได้ แต่ละองค์ประกอบ ประกอบด้วยคอมโพเนนต์อย่างน้อย 1 รายการ ได้แก่ ช่องค้นหา บล็อกผลการค้นหา หรือทั้ง 2 อย่าง ช่องค้นหายอมรับข้อมูลจากผู้ใช้ในรูปแบบต่อไปนี้
- คำค้นหาที่พิมพ์ในช่องป้อนข้อความ
- สตริงการค้นหาที่ฝังอยู่ใน URL
- การดำเนินการแบบเป็นโปรแกรม
นอกจากนี้ บล็อกผลการค้นหายังรับอินพุตใน วิธีต่อไปนี้ด้วย
- สตริงการค้นหาที่ฝังอยู่ใน URL
- การดำเนินการแบบเป็นโปรแกรม
องค์ประกอบ Programmable Search ประเภทต่อไปนี้พร้อมให้ใช้งาน
| ประเภทองค์ประกอบ | คอมโพเนนต์ | คำอธิบาย |
|---|---|---|
| มาตรฐาน | <div class="gcse-search"> |
ช่องค้นหาและผลการค้นหา
แสดงใน<div>เดียวกัน |
| 2 คอลัมน์ | <div class="gcse-searchbox"> และ <div class="gcse-searchresults"> |
เลย์เอาต์ 2 คอลัมน์ที่มีผลการค้นหาอยู่ด้านหนึ่งและช่องค้นหา
อยู่อีกด้านหนึ่ง หากวางแผนที่จะแทรกองค์ประกอบหลายรายการในโหมด 2 คอลัมน์
ในหน้าเว็บ คุณสามารถใช้แอตทริบิวต์ gname เพื่อจับคู่ช่องค้นหากับบล็อกผลการค้นหาได้
|
| searchbox-only | <div class="gcse-searchbox-only"> |
ช่องค้นหาแบบสแตนด์อโลน |
| searchresults-only | <div class="gcse-searchresults-only"> |
บล็อกผลการค้นหาแบบสแตนด์อโลน |
คุณเพิ่มองค์ประกอบการค้นหาที่ถูกต้องกี่รายการก็ได้ลงในหน้าเว็บ สำหรับโหมด 2 คอลัมน์ จะต้องมีคอมโพเนนต์ที่จำเป็นทั้งหมด (ช่องค้นหาและบล็อกผลการค้นหา )
ตัวอย่างองค์ประกอบการค้นหาแบบง่ายมีดังนี้
<!-- 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>
สร้างตัวเลือกเลย์เอาต์ต่างๆ โดยใช้ Programmable Search Elements
ตัวเลือกเลย์เอาต์ต่อไปนี้พร้อมใช้งานในหน้า "รูปลักษณ์" ของแผงควบคุมเครื่องมือค้นหาที่โปรแกรมได้ ต่อไปนี้เป็นหลักเกณฑ์ทั่วไปเกี่ยวกับการจัดวางตัวเลือกเลย์เอาต์โดยใช้องค์ประกอบของ Programmable Search หากต้องการดูการสาธิตตัวเลือกใดตัวเลือกหนึ่งเหล่านี้ ให้คลิกลิงก์
| ตัวเลือก | คอมโพเนนต์ |
|---|---|
| เต็มความกว้าง | <div class="gcse-search"> |
| กะทัดรัด | <div class="gcse-search"> |
| 2 คอลัมน์ | <div class="gcse-searchbox">, <div class="gcse-searchresults"> |
| 2 หน้า | <div class="gcse-searchbox-only"> ในหน้าแรก <div class="gcse-searchresults-only"> (หรือคอมโพเนนต์อื่นๆ) ในหน้าที่ 2 |
| ผลการค้นหาเท่านั้น | <div class="gcse-searchresults-only"> |
| โฮสต์โดย Google | <div class="gcse-searchbox-only"> |
ข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเลย์เอาต์
การปรับแต่งองค์ประกอบ Programmable Search
หากต้องการปรับแต่งสี แบบอักษร หรือสไตล์ลิงก์ ให้ไปที่หน้า "รูปลักษณ์" ของเครื่องมือค้นหาที่ตั้งโปรแกรมได้
คุณสามารถใช้แอตทริบิวต์ที่ไม่บังคับเพื่อเขียนทับการกำหนดค่าที่สร้างขึ้นในแผงควบคุม Programmable Search Engine ซึ่งจะช่วยให้คุณสร้างประสบการณ์การค้นหาเฉพาะหน้าได้
ตัวอย่างเช่น โค้ดต่อไปนี้จะสร้างช่องค้นหาที่เปิดหน้าผลการค้นหา
(http://www.example.com?search=lady+gaga) ในหน้าต่างใหม่ ค่าของแอตทริบิวต์
queryParameterName พร้อมกับสตริงคำค้นหาของผู้ใช้
จะใช้เพื่อสร้าง URL ของผลการค้นหา
โปรดทราบว่าแอตทริบิวต์ queryParameterName มีคำนำหน้าเป็น data-
แอตทริบิวต์ทั้งหมดต้องมีคำนำหน้านี้
<div class="gcse-searchbox-only" data-resultsUrl="http://www.example.com" data-newWindow="true" data-queryParameterName="search">
หากใช้แผงควบคุม Programmable Search Engine เพื่อเปิดใช้ฟีเจอร์ต่างๆ เช่น การเติมข้อความอัตโนมัติหรือการปรับแต่ง คุณจะใช้แอตทริบิวต์เพื่อ ปรับแต่งฟีเจอร์เหล่านั้นได้ การปรับแต่งที่คุณระบุโดยใช้แอตทริบิวต์เหล่านี้ จะลบล้างการตั้งค่าที่ทำในแผงควบคุม ตัวอย่างต่อไปนี้สร้าง องค์ประกอบการค้นหาแบบ 2 คอลัมน์ที่มีฟีเจอร์ต่อไปนี้
- เปิดใช้การจัดการประวัติแล้ว
- ระบบจะตั้งค่าจำนวนการเติมข้อความอัตโนมัติที่แสดงสูงสุดเป็น 5 รายการ
- การปรับแต่งจะแสดงเป็นลิงก์
<div class="gcse-searchbox" data-enableHistory="true" data-autoCompleteMaxCompletions="5"> <div class="gcse-searchresults" data-refinementStyle="link">
แอตทริบิวต์ที่รองรับ
| แอตทริบิวต์ | ประเภท | คำอธิบาย | ส่วนประกอบ |
|---|---|---|---|
| ทั่วไป | |||
gname |
สตริง | (ไม่บังคับ) ชื่อสำหรับออบเจ็กต์ Search Element ชื่อใช้เพื่อดึงข้อมูล
คอมโพเนนต์ที่เชื่อมโยงตามชื่อ หรือเพื่อจับคู่searchbox
คอมโพเนนต์กับคอมโพเนนต์ searchresults หากไม่ได้ระบุไว้
Programmable Search Engine จะสร้าง gname โดยอัตโนมัติโดยอิงตาม
ลำดับของคอมโพเนนต์ในหน้าเว็บ เช่น searchbox-only แรกที่ไม่มีชื่อมี gname "searchbox-only0"
และรายการที่สองมี gname "seachbox-only1" และอื่นๆ
โปรดทราบว่า gname ที่สร้างขึ้นโดยอัตโนมัติสำหรับคอมโพเนนต์ใน
เลย์เอาต์ 2 คอลัมน์จะเป็น two-column ตัวอย่างต่อไปนี้
ใช้ gname storesearch เพื่อลิงก์คอมโพเนนต์ searchbox
กับคอมโพเนนต์ searchresults
<div class="gcse-searchbox" data-gname="storesearch"></div> <div class="gcse-searchresults" data-gname="storesearch"></div> เมื่อดึงข้อมูลออบเจ็กต์ หากมีคอมโพเนนต์มากกว่า 1 รายการที่มี
|
ตามแต่ละประเทศ |
autoSearchOnLoad |
บูลีน | ระบุว่าจะดำเนินการค้นหาตามคำค้นหาที่ฝังอยู่ใน URL
ของหน้าที่กำลังโหลดหรือไม่ โปรดทราบว่าต้องมีสตริงการค้นหาใน URL
จึงจะดำเนินการค้นหาอัตโนมัติได้ ค่าเริ่มต้น: true |
ตามแต่ละประเทศ |
enableHistory |
บูลีน | หาก true จะเปิดใช้การจัดการประวัติสำหรับปุ่มย้อนกลับ
และไปข้างหน้าของเบราว์เซอร์ ดูการสาธิต |
ช่องค้นหา searchbox-only |
queryParameterName |
สตริง | ชื่อพารามิเตอร์การค้นหา เช่น q (ค่าเริ่มต้น)
หรือ query โดยจะฝังอยู่ใน URL (เช่น
http://www.example.com?q=lady+gaga) โปรดทราบว่าการระบุ
ชื่อพารามิเตอร์การค้นหาเพียงอย่างเดียวจะไม่ทริกเกอร์การค้นหาอัตโนมัติเมื่อโหลด ต้องมีสตริงคำค้นหา
ใน URL เพื่อเรียกใช้การค้นหาอัตโนมัติ |
ตามแต่ละประเทศ |
resultsUrl |
URL | URL ของหน้าผลลัพธ์ (ค่าเริ่มต้นคือหน้าเว็บที่ Google โฮสต์) | searchbox-only |
newWindow |
บูลีน | ระบุว่าหน้าผลการค้นหาจะเปิดในหน้าต่างใหม่หรือไม่
ค่าเริ่มต้น: false |
searchbox-only |
ivt |
บูลีน |
พารามิเตอร์นี้ช่วยให้คุณระบุบูลีนที่แจ้งให้ Google ทราบว่าคุณต้องการอนุญาต โฆษณาที่ใช้คุกกี้และพื้นที่เก็บข้อมูลในเครื่องที่มีไว้สำหรับการเข้าชมที่ไม่ถูกต้องเท่านั้นทั้งในการเข้าชมที่ได้รับและ ไม่ได้รับความยินยอม
ค่าเริ่มต้น: ตัวอย่างการใช้งาน: |
searchresults searchresults-only |
mobileLayout |
สตริง |
ระบุว่าควรใช้รูปแบบเลย์เอาต์สำหรับอุปกรณ์เคลื่อนที่กับอุปกรณ์เคลื่อนที่หรือไม่
ค่าเริ่มต้น: ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
| เติมข้อความอัตโนมัติ | |||
enableAutoComplete |
บูลีน | ใช้ได้เฉพาะในกรณีที่เปิดใช้การเติมข้อความอัตโนมัติในแผงควบคุม Programmable Search Engine
true เปิดใช้การเติมข้อความอัตโนมัติ |
ตามแต่ละประเทศ |
autoCompleteMaxCompletions |
จำนวนเต็ม | จำนวนการเติมข้อความอัตโนมัติสูงสุดที่จะแสดง | ช่องค้นหา searchbox-only |
autoCompleteMaxPromotions |
จำนวนเต็ม | จำนวนโปรโมชันสูงสุดที่จะแสดงในการเติมข้อความอัตโนมัติ | ช่องค้นหา searchbox-only |
autoCompleteValidLanguages |
สตริง | รายการภาษาที่คั่นด้วยคอมมาซึ่งควรเปิดใช้การเติมข้อความอัตโนมัติ ภาษาที่รองรับ | ช่องค้นหา searchbox-only |
| การปรับแต่ง | |||
defaultToRefinement |
สตริง | ใช้ได้เฉพาะในกรณีที่สร้างการปรับแต่งใน แผงควบคุม Programmable Search Engine ระบุป้ายกำกับการปรับแต่งเริ่มต้นที่จะ แสดง หมายเหตุ: เลย์เอาต์ที่ Google โฮสต์ไม่รองรับแอตทริบิวต์นี้ | ตามแต่ละประเทศ |
refinementStyle |
สตริง | ค่าที่ยอมรับคือ tab (ค่าเริ่มต้น) และ link
link จะรองรับเฉพาะในกรณีที่ปิดใช้การค้นหารูปภาพ หรือในกรณีที่
เปิดใช้การค้นหารูปภาพแต่ปิดใช้การค้นเว็บ |
searchresults searchresults-only |
| ค้นหารูปภาพ | |||
enableImageSearch |
บูลีน | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
หาก |
searchresults searchresults-only |
defaultToImageSearch |
บูลีน | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
หาก |
ตามแต่ละประเทศ |
imageSearchLayout |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
ระบุเลย์เอาต์ของหน้าผลการค้นหารูปภาพ ค่าที่ยอมรับคือ |
searchresults searchresults-only |
imageSearchResultSetSize |
จำนวนเต็ม สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
ระบุขนาดสูงสุดของชุดผลการค้นหาสำหรับการค้นหารูปภาพ
เช่น |
ตามแต่ละประเทศ |
image_as_filetype |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
จำกัดผลลัพธ์เฉพาะไฟล์ที่มีนามสกุลที่ระบุ นามสกุลที่รองรับคือ | ตามแต่ละประเทศ |
image_as_oq |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
กรองผลการค้นหาโดยใช้ Logical OR ตัวอย่างการใช้งานหากต้องการผลการค้นหาที่มี "คำที่ 1" หรือ "คำที่ 2" | ตามแต่ละประเทศ |
image_as_rights |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
ตัวกรองตามการอนุญาตให้ใช้สิทธิ ค่าที่รองรับคือ | ตามแต่ละประเทศ |
image_as_sitesearch |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
จำกัดผลลัพธ์ให้แสดงเฉพาะหน้าเว็บจากเว็บไซต์ที่เฉพาะเจาะจง ตัวอย่างการใช้งาน: | ตามแต่ละประเทศ |
image_colortype |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
จำกัดการค้นหาเฉพาะรูปภาพขาวดำ (โมโน) โทนสีเทา หรือสี ค่าที่รองรับคือ | ตามแต่ละประเทศ |
image_cr |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
จำกัดผลการค้นหาเฉพาะเอกสารที่มาจากประเทศที่กำหนดไว้เท่านั้น | ตามแต่ละประเทศ |
image_dominantcolor |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
จำกัดการค้นหาเฉพาะรูปภาพที่มีสีเด่นที่เฉพาะเจาะจง
ค่าที่รองรับคือ | ตามแต่ละประเทศ |
image_filter |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
การกรองอัตโนมัติของผลการค้นหา ค่าที่รองรับ: 0/1 ตัวอย่างการใช้งาน: | ตามแต่ละประเทศ |
image_gl |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้ การค้นหารูปภาพในแผงควบคุม Programmable Search Engine เพิ่มผลการค้นหาที่มีประเทศต้นทางตรงกับค่าพารามิเตอร์ | ตามแต่ละประเทศ |
image_size |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
แสดงรูปภาพที่มีขนาดที่ระบุ โดยขนาดอาจเป็นค่าใดค่าหนึ่งต่อไปนี้ | ตามแต่ละประเทศ |
image_sort_by |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
จัดเรียงผลลัพธ์โดยใช้วันที่หรือเนื้อหาที่มีโครงสร้างอื่นๆ หากต้องการจัดเรียงตามความเกี่ยวข้อง ให้ใช้สตริงว่าง (image_sort_by="") ตัวอย่างการใช้งาน: | ตามแต่ละประเทศ |
image_type |
สตริง | ใช้ได้เฉพาะในกรณีที่เปิดใช้
การค้นหารูปภาพในแผงควบคุม Programmable Search Engine
จำกัดการค้นหาเฉพาะรูปภาพประเภทใดประเภทหนึ่ง
ค่าที่รองรับคือ | ตามแต่ละประเทศ |
| การค้นหาในเว็บ | |||
disableWebSearch |
บูลีน | หาก true จะปิดใช้การค้นเว็บ โดยปกติจะใช้เฉพาะในกรณีที่
เปิดใช้การค้นหารูปภาพในแผงควบคุม Programmable Search Engine |
searchresults searchresults-only |
webSearchQueryAddition |
สตริง | เพิ่มคำอื่นๆ ในคำค้นหาโดยใช้ Logical OR
ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
webSearchResultSetSize |
จำนวนเต็ม สตริง | ขนาดสูงสุดของชุดผลลัพธ์ ใช้ได้กับ
ทั้งการค้นหารูปภาพและการค้นเว็บ ค่าเริ่มต้นจะขึ้นอยู่กับเลย์เอาต์และ
ไม่ว่า Programmable Search Engine จะได้รับการกำหนดค่าให้ค้นหาทั้งเว็บหรือเฉพาะเว็บไซต์ที่ระบุ
ค่าที่ยอมรับมีดังนี้
|
ตามแต่ละประเทศ |
webSearchSafesearch |
สตริง |
ระบุว่าได้เปิดใช้
SafeSearch
สำหรับผลการค้นหาบนเว็บหรือไม่ ค่าที่ยอมรับคือ off และ active
|
ตามแต่ละประเทศ |
as_filetype |
สตริง | จำกัดผลลัพธ์เฉพาะไฟล์ที่มีนามสกุลที่ระบุ ดูรายการประเภทไฟล์ที่ Google จัดทำดัชนีได้ในศูนย์ช่วยเหลือของ Search Console | ตามแต่ละประเทศ |
as_oq |
สตริง | กรองผลการค้นหาโดยใช้ Logical OR
ตัวอย่างการใช้งานหากต้องการผลการค้นหาที่มี "คำที่ 1" หรือ "คำที่ 2" |
ตามแต่ละประเทศ |
as_rights |
สตริง | ตัวกรองตามการอนุญาตให้ใช้สิทธิ
ค่าที่รองรับคือ ดูชุดค่าผสมทั่วไปได้ที่ https://wiki.creativecommons.org/wiki/CC_Search_integration | ตามแต่ละประเทศ |
as_sitesearch |
สตริง | จำกัดผลลัพธ์ให้แสดงเฉพาะหน้าเว็บจากเว็บไซต์ที่เฉพาะเจาะจง
ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
cr |
สตริง | จำกัดผลการค้นหาเฉพาะเอกสารที่มาจากประเทศที่กำหนดไว้เท่านั้น
ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
filter |
สตริง | การกรองอัตโนมัติของผลการค้นหา
ค่าที่รองรับ: 0/1 ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
gl |
สตริง | เพิ่มผลการค้นหาที่มีประเทศต้นทางตรงกับค่าพารามิเตอร์
ซึ่งจะใช้ได้เมื่อใช้ร่วมกับการตั้งค่าค่าภาษาเท่านั้น ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
lr |
สตริง | จำกัดผลการค้นหาเฉพาะเอกสารที่เขียนในภาษาที่กำหนดไว้เท่านั้น
ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
sort_by |
สตริง | จัดเรียงผลลัพธ์โดยใช้วันที่หรือเนื้อหาที่มีโครงสร้างอื่นๆ ค่าแอตทริบิวต์ต้องเป็นหนึ่งในตัวเลือกที่ระบุในการตั้งค่าการจัดเรียงผลลัพธ์ของเครื่องมือค้นหาที่ตั้งโปรแกรมได้
หากต้องการจัดเรียงตามความเกี่ยวข้อง ให้ใช้สตริงว่าง (sort_by="") ตัวอย่างการใช้งาน: |
ตามแต่ละประเทศ |
| ผลการค้นหา | |||
enableOrderBy |
บูลีน | เปิดใช้การจัดเรียงผลลัพธ์ตามความเกี่ยวข้อง วันที่ หรือป้ายกำกับ | ตามแต่ละประเทศ |
linkTarget |
สตริง | ตั้งค่าเป้าหมายลิงก์ ค่าเริ่มต้น: _blank |
searchresults searchresults-only |
noResultsString |
สตริง | ระบุข้อความเริ่มต้นที่จะแสดงเมื่อไม่พบผลการค้นหาตามคำค้นหา คุณใช้สตริงผลลัพธ์เริ่มต้นเพื่อแสดงสตริงที่แปลเป็นภาษาท้องถิ่นในทุกภาษาที่รองรับได้ แต่สตริงที่กำหนดเองจะทำไม่ได้ | searchresults searchresults-only |
resultSetSize |
จำนวนเต็ม สตริง | ขนาดสูงสุดของชุดผลลัพธ์ เช่น large
small, filtered_cse, 10
ค่าเริ่มต้นจะขึ้นอยู่กับเลย์เอาต์และกำหนดค่าเครื่องมือให้ค้นหา
ทั้งเว็บหรือเฉพาะเว็บไซต์ที่ระบุ |
ตามแต่ละประเทศ |
safeSearch |
สตริง | ระบุว่าเปิดใช้
ฟีเจอร์ค้นหาปลอดภัยสำหรับการค้นหาทั้งในเว็บและรูปภาพหรือไม่ ค่าที่ยอมรับคือ off
และ active |
ตามแต่ละประเทศ |
การติดต่อกลับ
Callback รองรับการควบคุมโดยละเอียดของการเริ่มต้นองค์ประกอบการค้นหาและกระบวนการค้นหา
โดยจะลงทะเบียนกับ JavaScript ขององค์ประกอบการค้นหาผ่านออบเจ็กต์ส่วนกลาง __gcse
ลงทะเบียนการเรียกกลับแสดงการลงทะเบียนการเรียกกลับที่รองรับทั้งหมด
window.__gcse = {
parsetags: 'explicit', // Defaults to 'onload'
initializationCallback: myInitializationCallback,
searchCallbacks: {
image: {
starting: myImageSearchStartingCallback,
ready: myImageResultsReadyCallback,
rendered: myImageResultsRenderedCallback,
},
web: {
starting: myWebSearchStartingCallback,
ready: myWebResultsReadyCallback,
rendered: myWebResultsRenderedCallback,
},
},
};
การเรียกกลับการเริ่มต้น
ระบบจะเรียกใช้การเรียกกลับการเริ่มต้นก่อนที่ JavaScript ของ Search Element จะแสดงผลองค์ประกอบ search
ใน DOM หากตั้งค่า parsetags เป็น explicit ใน __gcse JavaScript ของ Search Element จะปล่อยให้การแสดงผล Search Element เป็นหน้าที่ของ Callback การเริ่มต้น (ดังที่แสดงในลงทะเบียน Callback)
ซึ่งอาจใช้เพื่อเลือกองค์ประกอบที่จะแสดงผล หรือเพื่อเลื่อนการแสดงผลองค์ประกอบจนกว่าจะจำเป็น นอกจากนี้ยังลบล้างแอตทริบิวต์ขององค์ประกอบได้ด้วย เช่น เปลี่ยนช่องค้นหาที่กำหนดค่าผ่านแผงควบคุมหรือแอตทริบิวต์ HTML ให้เป็นค่าเริ่มต้นสำหรับการค้นหาเว็บเป็นช่องค้นหารูปภาพ หรือระบุว่าคําค้นหาที่ส่งผ่านแบบฟอร์มเครื่องมือค้นหาที่โปรแกรมได้จะดำเนินการในองค์ประกอบ searchresults-only
ดูการสาธิต
บทบาทของโปรแกรมเรียกกลับการเริ่มต้นจะควบคุมโดยค่าของพร็อพเพอร์ตี้ parsetags
ของ __gcse
- หากค่าเป็น
onloadJavaScript ของ Search Element จะแสดงผล Search Element ทั้งหมดในหน้าเว็บโดยอัตโนมัติ ระบบจะยังเรียกใช้การเรียกกลับการเริ่มต้น แต่การเรียกกลับนี้จะไม่มีหน้าที่ในการแสดงผล Search Elements - หากค่าเป็น
explicitJavaScript ของ Search Element จะไม่แสดงผล Search Element โดยการเรียกกลับอาจแสดงผลแบบเลือกโดยใช้ฟังก์ชันrender()หรือแสดงผล Search Element ทั้งหมดด้วยฟังก์ชันgo()
โค้ดต่อไปนี้แสดงวิธีแสดงผลช่องค้นหาพร้อมกับผลการค้นหาใน div โดยใช้แท็ก explicit และการเรียกกลับการเริ่มต้น
เราต้องใส่ <div> ที่มีค่ารหัส
ในตำแหน่งที่เราต้องการให้โค้ด Search Element อยู่
<div id="test"></div><div> โปรดทราบว่า
อ้างอิงถึง test ซึ่งเป็น id ที่เราใช้เพื่อระบุ
<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
};
ใส่ HTML นี้เพื่อเริ่มโหลดองค์ประกอบการค้นหา แทนที่ค่า cx ใน
ข้อ src ด้วยค่า cx ของคุณเอง
<script async
src="https://cse.google.com/cse.js?cx=000888210889775888983:y9tkcjel090"></script>การเรียกกลับของ Search
JavaScript ขององค์ประกอบการค้นหารองรับ Callback 6 รายการที่ทำงานในโฟลว์การควบคุมการค้นหา การเรียกกลับของการค้นหาจะมาเป็นคู่ ซึ่งเป็นการเรียกกลับของการค้นหาเว็บและการเรียกกลับของการค้นหารูปภาพที่ตรงกัน
- การค้นหาเริ่มต้น
- สำหรับการค้นหารูปภาพ
- สำหรับการค้นหาบนเว็บ
- ผลลัพธ์พร้อมแล้ว
- สำหรับการค้นหารูปภาพ
- สำหรับการค้นหาบนเว็บ
- ผลการค้นหาที่แสดง
- สำหรับการค้นหารูปภาพ
- สำหรับการค้นหาบนเว็บ
เช่นเดียวกับการเรียกกลับการเริ่มต้น การเรียกกลับการค้นหาจะได้รับการกำหนดค่าโดยใช้รายการในออบเจ็กต์ __gcse เหตุการณ์นี้จะเกิดขึ้นเมื่อ JavaScript ของ Search Element
เริ่มต้น ระบบจะละเว้นการแก้ไข __gcse หลังจากเริ่มต้น
โดยจะมีการส่ง gName สำหรับ
องค์ประกอบการค้นหาเป็นอาร์กิวเมนต์ไปยังแต่ละแฮนเดิลเลอร์
gname มีประโยชน์เมื่อหน้าเว็บมีการค้นหามากกว่า 1 รายการ กำหนดค่า gname ให้องค์ประกอบ search
โดยใช้แอตทริบิวต์ data-gname ดังนี้
<div class="gcse-searchbox" data-gname="storesearch"></div>
หาก HTML ไม่ระบุ gname JavaScript ของ Search Element จะสร้างค่าที่จะ ยังคงสอดคล้องกันจนกว่าจะมีการแก้ไข HTML
การเรียกกลับเมื่อเริ่มการค้นหารูปภาพ/เว็บ
ระบบจะเรียกใช้การเรียกกลับของการเริ่มต้นการค้นหาก่อนที่ JavaScript ของ Search Element จะขอผลการค้นหาจากเซิร์ฟเวอร์ ตัวอย่างกรณีการใช้งานคือการใช้เวลาท้องถิ่นของวันเพื่อ ควบคุมการเปลี่ยนแปลงคําค้นหา
searchStartingCallback(gname, query)
gname- สตริงระบุขององค์ประกอบการค้นหา
query- ค่าที่ผู้ใช้ป้อน (อาจแก้ไขโดย JavaScript ขององค์ประกอบ search )
โดย Callback จะแสดงค่าที่ควรใช้เป็นคำค้นหาสำหรับการค้นหานี้ หากแสดงผลสตริงว่าง ระบบจะไม่สนใจค่าที่แสดงผลและผู้เรียกจะใช้การค้นหาที่ไม่มีการแก้ไข
หรือจะใส่ฟังก์ชัน Callback ในออบเจ็กต์ __gcse หรือ
เพิ่ม Callback ลงในออบเจ็กต์แบบไดนามิกด้วย JavaScript ก็ได้
window.__gcse['searchCallbacks']['web']['starting'] = function(gname, query) {...};ตัวอย่าง Search Starting Callback
การเรียกกลับที่เริ่มต้นการค้นหาตัวอย่างใน
การเรียกกลับที่เริ่มต้นการค้นหาตัวอย่างจะเพิ่ม morning
หรือ afternoon ลงในคำค้นหาโดยขึ้นอยู่กับช่วงเวลาของวัน
const myWebSearchStartingCallback = (gname, query) => {
const hour = new Date().getHours();
return query + (hour < 12 ? ' morning' : ' afternoon');
};
window.myImageSearchStartingCallbackName = myWebSearchStartingCallback;
ติดตั้งการเรียกกลับนี้ใน 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>การเรียกกลับที่พร้อมใช้งานสำหรับผลการค้นหารูปภาพ/เว็บ
ระบบจะเรียกใช้แฮนเดิลการเรียกกลับเหล่านี้ทันทีก่อนที่ JavaScript ขององค์ประกอบการค้นหาจะแสดงโปรโมชันและผลลัพธ์ กรณีการใช้งานตัวอย่างคือการเรียกกลับที่แสดงโปรโมชันและผลลัพธ์ในรูปแบบที่ ระบุไม่ได้ด้วยการปรับแต่งปกติ
resultsReadyCallback(gname, query, promos, results, div)
gname- สตริงระบุขององค์ประกอบการค้นหา
query- คำค้นหาที่ทำให้เกิดผลลัพธ์เหล่านี้
promos- อาร์เรย์ของออบเจ็กต์โปรโมชันที่สอดคล้องกับโปรโมชันที่ตรงกันสำหรับการค้นหาของผู้ใช้ ดูคำจำกัดความของออบเจ็กต์โปรโมชัน
results- อาร์เรย์ของออบเจ็กต์ผลลัพธ์ ดูคำจำกัดความของออบเจ็กต์ผลลัพธ์
div- องค์ประกอบ HTML div ที่อยู่ใน DOM ซึ่งโดยปกติแล้ว Search Element จะ
วางโปรโมชันและผลการค้นหา โดยปกติแล้ว JavaScript ของ Search Element จะจัดการ
การป้อนข้อมูลใน div นี้ แต่การเรียกกลับนี้อาจเลือกที่จะหยุดการแสดงผลลัพธ์อัตโนมัติ
และใช้
divนี้เพื่อแสดงผลลัพธ์ด้วยตนเอง
หาก Callback นี้แสดงผลค่า true JavaScript ของ Search Element จะข้ามไปทำงานส่วนท้ายของหน้า
ตัวอย่างการเรียกกลับเมื่อผลลัพธ์พร้อม
resultsReady ตัวอย่าง Callback ใน
Example Results Ready Callback จะลบล้างการนำเสนอเริ่มต้น
ของโปรโมชันและผลลัพธ์ด้วยการแทนที่อย่างง่าย
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;
};
ติดตั้งการเรียกกลับนี้ใน 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>
เช่นเดียวกับ Callback ที่เริ่มต้นการค้นหา วิธีข้างต้นเป็นหนึ่งในหลายๆ วิธีในการใส่ Callback ในออบเจ็กต์ __gcse
การเรียกกลับของผลการค้นหารูปภาพ/เว็บที่แสดง
ระบบจะเรียกใช้ฟังก์ชันเรียกกลับเหล่านี้ทันทีก่อนที่ JavaScript ของ Search Element จะแสดงผลส่วนท้ายของหน้า ตัวอย่างกรณีการใช้งาน ได้แก่ การเรียกกลับที่เพิ่มเนื้อหาผลการค้นหาที่องค์ประกอบการค้นหาไม่แสดง เช่น ช่องทำเครื่องหมายบันทึกรายการนี้ หรือข้อมูลที่ไม่ได้แสดงผลโดยอัตโนมัติ หรือการเรียกกลับที่เพิ่มปุ่มดูข้อมูลเพิ่มเติม
หากการเรียกกลับเมื่อแสดงผลลัพธ์ต้องการข้อมูลที่อยู่ในพารามิเตอร์ promos และ
results
ของการเรียกกลับเมื่อผลลัพธ์พร้อม ก็สามารถส่งต่อข้อมูลระหว่างกันได้ ดังนี้
callback(gname, query, promoElts, resultElts);
gname- สตริงระบุขององค์ประกอบการค้นหา
query- สตริงการค้นหา
promoElts- อาร์เรย์ขององค์ประกอบ DOM ที่มีการโปรโมต
resultElts- อาร์เรย์ขององค์ประกอบ DOM ที่มีผลลัพธ์
ไม่มีค่าที่ส่งคืน
ตัวอย่างการเรียกกลับเมื่อแสดงผลลัพธ์
ตัวอย่าง resultsRendered Callback ใน
Example Results Rendered Callback จะเพิ่มช่องทำเครื่องหมาย Keep
จำลองลงในโปรโมชันและผลลัพธ์แต่ละรายการ
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);
}
};
ติดตั้งการเรียกกลับนี้ใน 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>
หากการเรียกกลับเมื่อแสดงผลลัพธ์ต้องการข้อมูลที่ส่งไปยังการเรียกกลับเมื่อผลลัพธ์พร้อม ก็สามารถส่งข้อมูลดังกล่าวระหว่างการเรียกกลับได้ ตัวอย่างต่อไปนี้แสดงวิธีหนึ่งในหลายๆ วิธีในการส่งค่าคะแนนจาก richSnippet จากการเรียกกลับเมื่อผลลัพธ์พร้อมไปยังการเรียกกลับเมื่อแสดงผลลัพธ์
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};
};__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>ตัวอย่าง Callback การแสดงผล: การเปิดไฟล์ประเภทที่เฉพาะเจาะจงในแท็บ/หน้าต่างใหม่
ตัวอย่างการเรียกกลับต่อไปนี้สามารถแก้ไขลิงก์ผลการค้นหาหลังจากแสดงผลแล้วเพื่อเปิดไฟล์ที่เฉพาะเจาะจงในแท็บ/หน้าใหม่แทนหน้าต่างปัจจุบัน (เช่น PDF, Excel หรือ Word) ซึ่งจะช่วยปรับปรุงประสบการณ์การท่องเว็บเมื่อผู้ใช้ไม่ต้องการเปิดไฟล์ในหน้าต่างเดียวกันและออกจากหน้าผลการค้นหา
ตัวอย่างการเรียกกลับนี้จะระบุลิงก์ PDF ในผลการค้นหาและตั้งค่าแอตทริบิวต์ target="_blank" ในลิงก์ PDF เพื่อให้ลิงก์เปิดในแท็บใหม่ ระบบจะใช้ MutationObserver เพื่อจัดการผลลัพธ์ใหม่แบบไดนามิกหากหน้าเว็บมีการอัปเดต หมายเหตุ: คุณสามารถแทนที่ .pdf ใน handleSearchResults ด้วยไฟล์ประเภทอื่นได้ตามต้องการ
ตัวอย่างการเรียกกลับนี้ใช้ไม่ได้กับเลย์เอาต์ที่ Google โฮสต์และเลย์เอาต์แบบวางซ้อน
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.');
}
};
ติดตั้งการเรียกกลับนี้ใน 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>ตัวอย่าง Callback เพิ่มเติม
ดูตัวอย่าง Callback เพิ่มเติมได้ในเอกสารตัวอย่าง Callback เพิ่มเติม
พร็อพเพอร์ตี้โปรโมชันและพร็อพเพอร์ตี้ผลลัพธ์
พร็อพเพอร์ตี้ของออบเจ็กต์ promotion และ result มีดังนี้โดยใช้สัญกรณ์ JSDoc เราแสดงรายการพร็อพเพอร์ตี้ทั้งหมดที่อาจมีอยู่ที่นี่ พร็อพเพอร์ตี้หลายรายการ จะขึ้นอยู่กับรายละเอียดของโปรโมชันหรือผลการค้นหา
{
content: string,
image: {
height: number,
url: string,
width: number,
},
title: string,
url: string,
visibleUrl: string,
}{
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 ใน results มีประเภทแบบหลวมของอาร์เรย์ของ
ออบเจ็กต์ ค่าของรายการในอาร์เรย์นี้ควบคุมโดย Structured Data ที่พบในหน้าเว็บสำหรับผลการค้นหาแต่ละรายการ เช่น เว็บไซต์รีวิวอาจมี Structured Data ที่เพิ่มรายการอาร์เรย์นี้ลงใน richSnippet
'review': {
'ratingstars': '3.0',
'ratingcount': '1024',
},Programmable Search Element Control API (V2)
ออบเจ็กต์ google.search.cse.element จะเผยแพร่ฟังก์ชันแบบคงที่ต่อไปนี้
| ฟังก์ชัน | คำอธิบาย | ||||||
|---|---|---|---|---|---|---|---|
.render(componentConfig, opt_componentConfig) |
แสดงผลองค์ประกอบ Search
พารามิเตอร์
|
||||||
.go(opt_container) |
แสดงแท็ก/คลาส Search Element ทั้งหมดในคอนเทนเนอร์ที่ระบุ
พารามิเตอร์
|
||||||
.getElement(gname) |
รับออบเจ็กต์องค์ประกอบตาม gname หากไม่พบ ให้แสดงผลเป็น Null
ออบเจ็กต์
โค้ดต่อไปนี้จะเรียกใช้คำค้นหา "news" ในองค์ประกอบการค้นหา "element1" var element = google.search.cse.element.getElement('element1'); element.execute('news'); |
||||||
.getAllElements() |
แสดงผลแมปของออบเจ็กต์องค์ประกอบทั้งหมดที่สร้างสำเร็จ โดยมีคีย์เป็น gname |