คำอธิบาย
ใช้การทำงานของเบราว์เซอร์เพื่อใส่ไอคอนในแถบเครื่องมือหลักของ Google Chrome ทางด้านขวาของแถบที่อยู่ นอกจากไอคอนแล้ว การดำเนินการของเบราว์เซอร์อาจมีเคล็ดลับเครื่องมือ ป้าย และป๊อปอัปด้วย
ความพร้อมใช้งาน
ในรูปต่อไปนี้ สี่เหลี่ยมจัตุรัสหลากสีทางด้านขวาของแถบที่อยู่คือไอคอน การทำงานของเบราว์เซอร์ ป๊อปอัปจะอยู่ใต้ไอคอน
หากคุณต้องการสร้างไอคอนที่ไม่มีการใช้งานอยู่ ให้ใช้การดำเนินการของหน้าเว็บแทนเบราว์เซอร์ การดำเนินการ
ไฟล์ Manifest
บันทึกการทำงานของเบราว์เซอร์ในไฟล์ Manifest ของส่วนขยายดังนี้
{
"name": "My extension",
...
"browser_action": {
"default_icon": { // optional
"16": "images/icon16.png", // optional
"24": "images/icon24.png", // optional
"32": "images/icon32.png" // optional
},
"default_title": "Google Mail", // optional, shown in tooltip
"default_popup": "popup.html" // optional
},
...
}
คุณระบุไอคอนขนาดใดก็ได้เพื่อใช้ใน Chrome แล้ว Chrome จะเลือกไอคอนที่ใกล้เคียงที่สุดและปรับขนาด ให้เป็นขนาดที่เหมาะสมให้พอดีกับพื้นที่ 16 dip แต่หากไม่ได้ระบุขนาดที่แน่นอน การปรับขนาดอาจทำให้ไอคอนสูญเสียรายละเอียดหรือดูไม่ชัด
เนื่องจากอุปกรณ์ที่มีตัวประกอบสเกลที่พบไม่บ่อย เช่น 1.5 เท่า หรือ 1.2 เท่า เริ่มมีการใช้งานมากขึ้น คุณจึง แนะนำให้มีไอคอนของคุณหลายขนาด ซึ่งช่วยให้แน่ใจว่าไอคอนมีขนาดแสดงผล มีการเปลี่ยนแปลง คุณไม่ต้องดำเนินการใดๆ เพิ่มเติมเพื่อสร้างไอคอนต่างๆ
ระบบยังคงรองรับไวยากรณ์เดิมสำหรับการลงทะเบียนไอคอนเริ่มต้นอยู่ ดังนี้
{
"name": "My extension",
...
"browser_action": {
...
"default_icon": "images/icon32.png" // optional
// equivalent to "default_icon": { "32": "images/icon32.png" }
},
...
}
ส่วนต่างๆ ของ UI
การดำเนินการของเบราว์เซอร์อาจมีไอคอน เคล็ดลับเครื่องมือ ป้าย และป๊อปอัป
Icon
ไอคอนการดำเนินการของเบราว์เซอร์ใน Chrome คือส่วนที่กว้างและสูง 16 จุด (พิกเซลที่ไม่ขึ้นอยู่กับอุปกรณ์) ใหญ่ขึ้น จะปรับขนาดให้พอดี แต่เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ให้ใช้ไอคอนสี่เหลี่ยมจัตุรัส 16 จุด
คุณสามารถกำหนดไอคอนได้ 2 วิธี ได้แก่ การใช้ภาพนิ่งหรือองค์ประกอบ Canvas ของ HTML5 การใช้ ภาพนิ่งจะใช้ได้ง่ายขึ้นสำหรับแอปพลิเคชันทั่วๆ ไป แต่คุณสามารถสร้าง UI แบบไดนามิกเพิ่มเติม เช่น ภาพเคลื่อนไหวที่ราบรื่น โดยใช้เอลิเมนต์ Canvas
ภาพนิ่งสามารถแสดงในรูปแบบใดก็ได้ที่ WebKit แสดงได้ ซึ่งรวมถึง BMP, GIF, ICO, JPEG หรือ PNG สำหรับ ส่วนขยายที่คลายการแพคข้อมูลแล้ว รูปภาพต้องอยู่ในรูปแบบ PNG
หากต้องการตั้งค่าไอคอน ให้ใช้ช่อง default_icon ของ default_icon ในไฟล์ Manifest หรือ
เมธอด browserAction.setIcon
เพื่อแสดงไอคอนอย่างถูกต้องเมื่อความหนาแน่นของพิกเซลหน้าจอ (อัตราส่วน size_in_pixel / size_in_dip
) เท่ากับ
แตกต่างจาก 1 ไอคอนสามารถกำหนดให้เป็นชุดรูปภาพที่มีขนาดต่างกัน รูปภาพจริงสำหรับ
จอแสดงผลจะเลือกจากชุด
ให้พอดีกับขนาดพิกเซล 16 d ชุดไอคอนสามารถประกอบด้วย
ข้อกำหนดไอคอนขนาดใดก็ได้ และ Chrome จะเลือกสิ่งที่เหมาะสมที่สุด
เคล็ดลับเครื่องมือ
หากต้องการตั้งค่าเคล็ดลับเครื่องมือ ให้ใช้ช่อง default_title ของ default_title ในไฟล์ Manifest หรือ
เรียกใช้เมธอด browserAction.setTitle
คุณสามารถระบุสตริงเฉพาะภาษาสำหรับ
default_title ดูรายละเอียดในการทำให้เป็นสากล
ป้าย
การดำเนินการของเบราว์เซอร์จะแสดงป้าย ซึ่งเป็นข้อความสั้นๆ ที่วางซ้อนทับบนไอคอน (ไม่บังคับ) ป้ายช่วยให้สามารถอัปเดตการทำงานของเบราว์เซอร์ได้โดยง่ายเพื่อแสดงข้อมูลเพียงเล็กน้อยเกี่ยวกับ สถานะของส่วนขยาย
ป้ายควรมีอักขระไม่เกิน 4 ตัวเนื่องจากมีพื้นที่จำกัด
กำหนดข้อความและสีของป้ายโดยใช้ browserAction.setBadgeText
และ
browserAction.setBadgeBackgroundColor
ตามลำดับ
ป๊อปอัป
หากการทำงานของเบราว์เซอร์มีป๊อปอัป ป๊อปอัปจะปรากฏขึ้นเมื่อผู้ใช้คลิกที่ไอคอนของส่วนขยาย ป๊อปอัปอาจมีเนื้อหา HTML ใดก็ได้ที่คุณต้องการ และระบบจะปรับขนาดให้พอดีกับเนื้อหาโดยอัตโนมัติ ป๊อปอัปต้องมีขนาดไม่เกิน 25x25 และไม่เกิน 800x600
หากต้องการเพิ่มป๊อปอัปลงในการทำงานของเบราว์เซอร์ ให้สร้างไฟล์ HTML ที่มีเนื้อหาของป๊อปอัป ระบุ
ไฟล์ HTML ในช่อง default_popup ของ default_popup ในไฟล์ Manifest หรือเรียกเมธอด
browserAction.setPopup
เคล็ดลับ
โปรดทำตามหลักเกณฑ์ต่อไปนี้เพื่อให้ภาพออกมาดีที่สุด
- ควรใช้การทำงานของเบราว์เซอร์สำหรับฟีเจอร์ที่เหมาะสมกับหน้าเว็บส่วนใหญ่
- ไม่ควรใช้การทำงานของเบราว์เซอร์กับฟีเจอร์ที่เหมาะสมสำหรับหน้าเว็บเพียงไม่กี่หน้า ใช้หน้า การดำเนินการแทน
- ควรใช้ไอคอนขนาดใหญ่สีสันสดใสที่ให้ประโยชน์สูงสุดจากพื้นที่ภาพ 16x16 พิกเซล ไอคอนการทำงานของเบราว์เซอร์ ควรจะมีขนาดใหญ่และหนักกว่าไอคอนการทำงานของหน้าเล็กน้อย
- อย่าพยายามเลียนแบบไอคอนเมนูโมโนโครมของ Google Chrome สิ่งที่ทำงานได้ไม่ดีกับ ธีม และอย่างไรก็ดี ส่วนขยายควรมีความโดดเด่นอยู่เล็กน้อย
- ควรใช้ความโปร่งใสของอัลฟ่าเพื่อเพิ่มขอบที่นุ่มนวลให้กับไอคอน เนื่องจากมีคนจำนวนมากใช้ธีม ไอคอนควรดูดีบนพื้นหลังที่มีสีหลากหลาย
- อย่าทำให้ไอคอนเคลื่อนไหวอย่างต่อเนื่อง น่ารำคาญจริงๆ
ตัวอย่าง
คุณสามารถดูตัวอย่างง่ายๆ ของการใช้การดำเนินการของเบราว์เซอร์ได้ใน examples/api/browserAction ไดเรกทอรี สำหรับตัวอย่างอื่นๆ และความช่วยเหลือในการดูซอร์สโค้ด โปรดดูตัวอย่าง
ประเภท
ColorArray
ประเภท
[ตัวเลข ตัวเลข ตัวเลข]
ImageDataType
ข้อมูลพิกเซลของรูปภาพ ต้องเป็นออบเจ็กต์ ImageData ตัวอย่างเช่น จากเอลิเมนต์ canvas
ประเภท
ImageData
TabDetails
พร็อพเพอร์ตี้
-
tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่ต้องการค้นหาสถานะ หากไม่ได้ระบุแท็บ ระบบจะแสดงผลสถานะไม่เจาะจงแท็บ
เมธอด
disable()
chrome.browserAction.disable(
tabId?: number,
callback?: function,
)
ปิดใช้การทำงานของเบราว์เซอร์ในแท็บ
พารามิเตอร์
-
tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะแก้ไขการทำงานของเบราว์เซอร์
-
Callback
ไม่บังคับ
Chrome 67 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
enable()
chrome.browserAction.enable(
tabId?: number,
callback?: function,
)
เปิดใช้การทำงานของเบราว์เซอร์ในแท็บ ค่าเริ่มต้นคือเปิดใช้
พารามิเตอร์
-
tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะแก้ไขการทำงานของเบราว์เซอร์
-
Callback
ไม่บังคับ
Chrome 67 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getBadgeBackgroundColor()
chrome.browserAction.getBadgeBackgroundColor(
details: TabDetails,
callback?: function,
)
รับสีพื้นหลังของการทำงานของเบราว์เซอร์
พารามิเตอร์
-
รายละเอียด
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: ColorArray) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<ColorArray>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getBadgeText()
chrome.browserAction.getBadgeText(
details: TabDetails,
callback?: function,
)
รับข้อความในป้ายของการดำเนินการในเบราว์เซอร์ หากไม่ได้ระบุแท็บ ระบบจะแสดงข้อความป้ายแบบไม่เจาะจงแท็บ
พารามิเตอร์
-
รายละเอียด
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: string) => void
-
ผลลัพธ์
สตริง
-
การคืนสินค้า
-
คำมั่นสัญญา<สตริง>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getPopup()
chrome.browserAction.getPopup(
details: TabDetails,
callback?: function,
)
รับเอกสาร HTML ที่ตั้งค่าเป็นป๊อปอัปสำหรับการทำงานของเบราว์เซอร์นี้
พารามิเตอร์
-
รายละเอียด
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: string) => void
-
ผลลัพธ์
สตริง
-
การคืนสินค้า
-
คำมั่นสัญญา<สตริง>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getTitle()
chrome.browserAction.getTitle(
details: TabDetails,
callback?: function,
)
รับชื่อการทำงานของเบราว์เซอร์
พารามิเตอร์
-
รายละเอียด
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: string) => void
-
ผลลัพธ์
สตริง
-
การคืนสินค้า
-
คำมั่นสัญญา<สตริง>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
setBadgeBackgroundColor()
chrome.browserAction.setBadgeBackgroundColor(
details: object,
callback?: function,
)
กำหนดสีพื้นหลังของป้าย
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
สี
string | ColorArray
อาร์เรย์ของจำนวนเต็ม 4 ตัวในช่วง 0-255 ที่ประกอบกันเป็นสี RGBA ของป้าย ซึ่งอาจเป็นสตริงที่มีค่าสีแบบเลขฐาน 16 ของ CSS ก็ได้ เช่น
#FF0000
หรือ#F00
(สีแดง) แสดงสีด้วยความทึบแสงสูงสุด -
tabId
หมายเลข ไม่บังคับ
จำกัดการเปลี่ยนแปลงเมื่อเลือกแท็บใดแท็บหนึ่ง รีเซ็ตโดยอัตโนมัติเมื่อปิดแท็บ
-
-
Callback
ไม่บังคับ
Chrome 67 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
setBadgeText()
chrome.browserAction.setBadgeText(
details: object,
callback?: function,
)
ตั้งค่าข้อความป้ายสำหรับการทำงานของเบราว์เซอร์ ป้ายจะแสดงที่ด้านบนของไอคอน
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
tabId
หมายเลข ไม่บังคับ
จำกัดการเปลี่ยนแปลงเมื่อเลือกแท็บใดแท็บหนึ่ง รีเซ็ตโดยอัตโนมัติเมื่อปิดแท็บ
-
ข้อความ
string ไม่บังคับ
โดยสามารถใส่อักขระกี่ตัวก็ได้ แต่เว้นวรรคได้ประมาณ 4 ตัว หากส่งสตริงว่าง (
''
) ไป ระบบจะล้างข้อความป้าย หากระบุtabId
และtext
เป็นค่าว่าง ระบบจะล้างข้อความของแท็บที่ระบุและตั้งค่าเริ่มต้นเป็นข้อความป้ายส่วนกลาง
-
-
Callback
ไม่บังคับ
Chrome 67 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
setIcon()
chrome.browserAction.setIcon(
details: object,
callback?: function,
)
ตั้งค่าไอคอนสำหรับการทำงานของเบราว์เซอร์ ไอคอนดังกล่าวอาจระบุเป็นเส้นทางไปยังไฟล์ภาพ เป็นข้อมูลพิกเซลจากองค์ประกอบ Canvas หรือเป็นพจนานุกรมของไอคอนดังกล่าวก็ได้ ต้องระบุพร็อพเพอร์ตี้ path
หรือ imageData
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
ข้อมูลรูปภาพ
ImageData | ออบเจ็กต์ไม่บังคับ
ออบเจ็กต์ ImageData หรือพจนานุกรม {size -> ImageData} แสดงไอคอนที่จะตั้งค่า หากระบุไอคอนเป็นพจนานุกรม ระบบจะเลือกรูปภาพที่ใช้โดยขึ้นอยู่กับความหนาแน่นของพิกเซลของหน้าจอ หากจำนวนพิกเซลรูปภาพที่มีขนาดพอดีกับหน่วยพื้นที่หน้าจอหนึ่งเท่ากับ
scale
ระบบจะเลือกรูปภาพที่มีขนาดscale
* n โดยที่ n คือขนาดของไอคอนใน UI ต้องระบุรูปภาพอย่างน้อยหนึ่งภาพ โปรดทราบว่า "details.imageData = foo" เทียบเท่ากับ 'details.imageData = {'16': foo}' -
เส้นทาง
string | ออบเจ็กต์ไม่บังคับ
เส้นทางรูปภาพแบบสัมพัทธ์หรือพจนานุกรม {size -> อย่างใดอย่างหนึ่ง Relative image path} [เส้นทางรูปภาพสัมพัทธ์] ที่ชี้ไปยังไอคอนที่จะตั้งค่า หากระบุไอคอนเป็นพจนานุกรม ระบบจะเลือกรูปภาพที่ใช้โดยขึ้นอยู่กับความหนาแน่นของพิกเซลของหน้าจอ หากจำนวนพิกเซลรูปภาพที่มีขนาดพอดีกับหน่วยพื้นที่หน้าจอหนึ่งเท่ากับ
scale
ระบบจะเลือกรูปภาพที่มีขนาดscale
* n โดยที่ n คือขนาดของไอคอนใน UI ต้องระบุรูปภาพอย่างน้อยหนึ่งภาพ โปรดทราบว่า 'details.path = foo' เทียบเท่ากับ 'details.path = {'16': foo}' -
tabId
หมายเลข ไม่บังคับ
จำกัดการเปลี่ยนแปลงเมื่อเลือกแท็บใดแท็บหนึ่ง รีเซ็ตโดยอัตโนมัติเมื่อปิดแท็บ
-
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome 116 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
setPopup()
chrome.browserAction.setPopup(
details: object,
callback?: function,
)
ตั้งค่าเอกสาร HTML ให้เปิดเป็นป๊อปอัปเมื่อผู้ใช้คลิกไอคอนการดำเนินการของเบราว์เซอร์
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
ป๊อปอัป
สตริง
เส้นทางสัมพัทธ์ไปยังไฟล์ HTML ที่จะแสดงในป๊อปอัป หากตั้งค่าเป็นสตริงว่างเปล่า (
''
) ระบบจะไม่แสดงป๊อปอัป -
tabId
หมายเลข ไม่บังคับ
จำกัดการเปลี่ยนแปลงเมื่อเลือกแท็บใดแท็บหนึ่ง รีเซ็ตโดยอัตโนมัติเมื่อปิดแท็บ
-
-
Callback
ไม่บังคับ
Chrome 67 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
setTitle()
chrome.browserAction.setTitle(
details: object,
callback?: function,
)
ตั้งชื่อการทำงานของเบราว์เซอร์ ชื่อนี้จะปรากฏในเคล็ดลับเครื่องมือ
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
tabId
หมายเลข ไม่บังคับ
จำกัดการเปลี่ยนแปลงเมื่อเลือกแท็บใดแท็บหนึ่ง รีเซ็ตโดยอัตโนมัติเมื่อปิดแท็บ
-
title
สตริง
สตริงที่การทำงานของเบราว์เซอร์ควรแสดงขึ้นเมื่อวางเมาส์เหนือ
-
-
Callback
ไม่บังคับ
Chrome 67 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome เวอร์ชัน 88 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback