คำอธิบาย
ใช้ chrome.bookmarks
API เพื่อสร้าง จัดระเบียบ และจัดการบุ๊กมาร์ก ดูหน้าการลบล้างด้วย ซึ่งคุณใช้สร้างหน้าการจัดการบุ๊กมาร์กที่กำหนดเองได้

สิทธิ์
bookmarks
คุณต้องประกาศสิทธิ์ "บุ๊กมาร์ก" ในไฟล์ Manifest ของส่วนขยายเพื่อใช้ Bookmarks API เช่น
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
แนวคิดและการใช้งาน
ออบเจ็กต์และพร็อพเพอร์ตี้
ระบบจะจัดระเบียบบุ๊กมาร์กในโครงสร้างแบบต้นไม้ โดยแต่ละโหนดในโครงสร้างจะเป็นบุ๊กมาร์กหรือโฟลเดอร์ (บางครั้งเรียกว่ากลุ่ม) แต่ละโหนดในโครงสร้างจะแสดงด้วยออบเจ็กต์ bookmarks.BookmarkTreeNode
พร็อพเพอร์ตี้ BookmarkTreeNode
ใช้ใน chrome.bookmarks
API ทั้งหมด เช่น เมื่อเรียกใช้ bookmarks.create คุณจะส่งโฟลเดอร์หลักของโหนดใหม่ (parentId
) และพร็อพเพอร์ตี้ index
, title
และ url
ของโหนด (ไม่บังคับ) ดูข้อมูลเกี่ยวกับพร็อพเพอร์ตี้ที่โหนดมีได้ที่ bookmarks.BookmarkTreeNode
ตัวอย่าง
โค้ดต่อไปนี้จะสร้างโฟลเดอร์ที่มีชื่อว่า "บุ๊กมาร์กของส่วนขยาย" อาร์กิวเมนต์แรกของ
create()
ระบุพร็อพเพอร์ตี้สำหรับโฟลเดอร์ใหม่ อาร์กิวเมนต์ที่ 2 จะกำหนดฟังก์ชันที่จะ
ดำเนินการหลังจากสร้างโฟลเดอร์
chrome.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
ข้อมูลโค้ดถัดไปจะสร้างบุ๊กมาร์กที่ชี้ไปยังเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์ของส่วนขยาย เนื่องจากจะไม่มีอะไรเกิดขึ้นหากสร้างบุ๊กมาร์กไม่สำเร็จ โค้ดนี้จึงไม่จำเป็นต้องกำหนดฟังก์ชันเรียกกลับ
chrome.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง API บุ๊กมาร์กจากที่เก็บ chrome-extension-samples
ประเภท
BookmarkTreeNode
โหนด (ทั้งบุ๊กมาร์กหรือโฟลเดอร์) ในโครงสร้างบุ๊กมาร์ก ระบบจะจัดเรียงโหนดลูกในโฟลเดอร์ระดับบนสุด
พร็อพเพอร์ตี้
-
เด็ก
BookmarkTreeNode[] ไม่บังคับ
รายการย่อยของโหนดนี้ที่มีการจัดลำดับ
-
dateAdded
หมายเลข ไม่บังคับ
เวลาที่สร้างโหนดนี้ในหน่วยมิลลิวินาทีนับตั้งแต่ Epoch (
new Date(dateAdded)
) -
dateGroupModified
หมายเลข ไม่บังคับ
เวลาที่เนื้อหาของโฟลเดอร์นี้มีการเปลี่ยนแปลงครั้งล่าสุดเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
dateLastUsed
หมายเลข ไม่บังคับ
Chrome 114 ขึ้นไปเวลาที่เปิดโหนดนี้ครั้งล่าสุดเป็นมิลลิวินาทีตั้งแต่ Epoch ไม่ได้ตั้งค่าสำหรับโฟลเดอร์
-
folderType
FolderType ไม่บังคับ
Chrome 134 ขึ้นไปหากมีอยู่ โฟลเดอร์นี้จะเป็นโฟลเดอร์ที่เบราว์เซอร์เพิ่มและผู้ใช้หรือส่วนขยายจะแก้ไขไม่ได้ อาจมีการแก้ไขโหนดลูก หากโหนดนี้ไม่ได้ตั้งค่าพร็อพเพอร์ตี้
unmodifiable
ละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น)โฟลเดอร์แต่ละประเภทอาจมี 0, 1 หรือหลายโหนด เบราว์เซอร์อาจเพิ่มหรือนำโฟลเดอร์ออกได้ แต่จะทำผ่าน API ของส่วนขยายไม่ได้
-
id
สตริง
ตัวระบุที่ไม่ซ้ำกันสำหรับโหนด รหัสจะไม่ซ้ำกันในโปรไฟล์ปัจจุบัน และจะยังคงใช้ได้แม้หลังจากรีสตาร์ทเบราว์เซอร์แล้ว
-
ดัชนี
หมายเลข ไม่บังคับ
ตำแหน่งที่อิงตาม 0 ของโหนดนี้ภายในโฟลเดอร์ระดับบน
-
parentId
สตริง ไม่บังคับ
id
ของโฟลเดอร์หลัก ละเว้นสำหรับโหนดรูท -
กำลังซิงค์
บูลีน
Chrome 134 ขึ้นไปไม่ว่าจะซิงค์โหนดนี้กับพื้นที่เก็บข้อมูลบัญชีระยะไกลของผู้ใช้โดยเบราว์เซอร์หรือไม่ ซึ่งใช้เพื่อแยกความแตกต่างระหว่างเวอร์ชันบัญชีและเวอร์ชันเฉพาะในพื้นที่ของ
FolderType
เดียวกันได้ ค่าของพร็อพเพอร์ตี้นี้อาจเปลี่ยนแปลงสำหรับโหนดที่มีอยู่ เช่น เป็นผลจากการกระทำของผู้ใช้หมายเหตุ: นี่แสดงว่ามีการบันทึกโหนดไปยังผู้ให้บริการบัญชีในตัวของเบราว์เซอร์หรือไม่ เป็นไปได้ที่โหนดอาจซิงค์ผ่านบุคคลที่สาม แม้ว่าค่านี้จะเป็นเท็จก็ตาม
สำหรับโหนดที่มีการจัดการ (โหนดที่ตั้งค่า
unmodifiable
เป็นtrue
) พร็อพเพอร์ตี้นี้จะเป็นfalse
เสมอ -
title
สตริง
ข้อความที่แสดงสำหรับโหนด
-
แก้ไขไม่ได้
"managed"
ไม่บังคับระบุสาเหตุที่แก้ไขโหนดนี้ไม่ได้ ค่า
managed
แสดงว่าผู้ดูแลระบบหรือผู้ดูแลผู้ใช้ภายใต้การควบคุมดูแลเป็นผู้กำหนดค่าโหนดนี้ ละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น) -
URL
สตริง ไม่บังคับ
URL ที่ระบบนำทางไปยังเมื่อผู้ใช้คลิกที่บุ๊กมาร์ก ละเว้นสำหรับโฟลเดอร์
BookmarkTreeNodeUnmodifiable
ระบุสาเหตุที่แก้ไขโหนดนี้ไม่ได้ managed
ค่าจะระบุว่าผู้ดูแลระบบเป็นผู้กำหนดค่าโหนดนี้ ละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น)
ค่า
"managed"
CreateDetails
ออบเจ็กต์ที่ส่งไปยังฟังก์ชัน create()
พร็อพเพอร์ตี้
-
ดัชนี
หมายเลข ไม่บังคับ
-
parentId
สตริง ไม่บังคับ
ค่าเริ่มต้นคือโฟลเดอร์บุ๊กมาร์กอื่นๆ
-
title
สตริง ไม่บังคับ
-
URL
สตริง ไม่บังคับ
FolderType
ระบุประเภทโฟลเดอร์
ค่าแจกแจง
"แถบบุ๊กมาร์ก"
โฟลเดอร์ที่มีเนื้อหาแสดงที่ด้านบนของหน้าต่างเบราว์เซอร์
"อื่นๆ"
บุ๊กมาร์กที่แสดงในรายการบุ๊กมาร์กทั้งหมดในทุกแพลตฟอร์ม
"mobile"
โดยทั่วไปบุ๊กมาร์กจะพร้อมใช้งานในอุปกรณ์เคลื่อนที่ของผู้ใช้ แต่สามารถแก้ไขได้โดยส่วนขยายหรือในเครื่องมือจัดการบุ๊กมาร์ก
"มีการจัดการ"
โฟลเดอร์ระดับบนสุดที่อาจมีอยู่หากผู้ดูแลระบบหรือผู้ดูแลผู้ใช้ภายใต้การควบคุมดูแลได้กำหนดค่าบุ๊กมาร์ก
พร็อพเพอร์ตี้
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Chrome จะไม่จำกัดการดำเนินการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Chrome จะไม่จำกัดการดำเนินการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000000
เมธอด
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
สร้างบุ๊กมาร์กหรือโฟลเดอร์ภายใต้ parentId ที่ระบุ หาก URL เป็น NULL หรือไม่มีอยู่ จะถือว่าเป็นโฟลเดอร์
พารามิเตอร์
-
บุ๊กมาร์ก
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไป
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
เรียกข้อมูล BookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
idOrIdList
string | [string, ...string[]]
รหัสสตริงค่าเดียวหรืออาร์เรย์ของรหัสสตริง
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไป
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลบุตรหลานของ BookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
id
สตริง
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไป
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลบุ๊กมาร์กที่เพิ่มล่าสุด
พารามิเตอร์
-
numberOfItems
ตัวเลข
จำนวนสูงสุดของรายการที่จะแสดง
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไป
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลส่วนหนึ่งของลำดับชั้นของบุ๊กมาร์ก โดยเริ่มที่โหนดที่ระบุ
พารามิเตอร์
-
id
สตริง
รหัสของรูทของโครงสร้างย่อยที่จะดึงข้อมูล
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไป
getTree()
chrome.bookmarks.getTree(): Promise<BookmarkTreeNode[]>
ดึงข้อมูลลำดับชั้นของบุ๊กมาร์กทั้งหมด
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไป
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
ย้าย BookmarkTreeNode ที่ระบุไปยังตำแหน่งที่ระบุ
พารามิเตอร์
-
id
สตริง
-
ปลายทาง
ออบเจ็กต์
-
ดัชนี
หมายเลข ไม่บังคับ
-
parentId
สตริง ไม่บังคับ
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไป
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
นำบุ๊กมาร์กหรือโฟลเดอร์บุ๊กมาร์กที่ว่างเปล่าออก
พารามิเตอร์
-
id
สตริง
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไป
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
นำโฟลเดอร์บุ๊กมาร์กออกแบบเรียกซ้ำ
พารามิเตอร์
-
id
สตริง
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไป
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
ค้นหา BookmarkTreeNodes ที่ตรงกับการค้นหาที่ระบุ การค้นหาที่ระบุด้วยออบเจ็กต์จะสร้าง BookmarkTreeNodes ที่ตรงกับพร็อพเพอร์ตี้ที่ระบุทั้งหมด
พารามิเตอร์
-
query
string | object
สตริงของคำและวลีที่ยกมาซึ่งตรงกับ URL และชื่อของบุ๊กมาร์ก หรือออบเจ็กต์ หากเป็นออบเจ็กต์ คุณจะระบุพร็อพเพอร์ตี้
query
,url
และtitle
ได้ และระบบจะสร้างที่คั่นหน้าที่ตรงกับพร็อพเพอร์ตี้ที่ระบุทั้งหมด-
query
สตริง ไม่บังคับ
สตริงของคำและวลีที่ยกมาซึ่งตรงกับ URL และชื่อของบุ๊กมาร์ก
-
title
สตริง ไม่บังคับ
ชื่อของบุ๊กมาร์ก ตรงกันทุกประการ
-
URL
สตริง ไม่บังคับ
URL ของบุ๊กมาร์ก ตรงกันทุกประการ โปรดทราบว่าโฟลเดอร์ไม่มี URL
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไป
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
อัปเดตพร็อพเพอร์ตี้ของบุ๊กมาร์กหรือโฟลเดอร์ ระบุเฉพาะพร็อพเพอร์ตี้ที่ต้องการเปลี่ยนแปลง ส่วนพร็อพเพอร์ตี้ที่ไม่ได้ระบุจะไม่มีการเปลี่ยนแปลง หมายเหตุ: ปัจจุบันรองรับเฉพาะ "title" และ "url"
พารามิเตอร์
-
id
สตริง
-
การเปลี่ยนแปลง
ออบเจ็กต์
-
title
สตริง ไม่บังคับ
-
URL
สตริง ไม่บังคับ
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไป
กิจกรรม
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
ทริกเกอร์เมื่อมีการเปลี่ยนแปลงบุ๊กมาร์กหรือโฟลเดอร์ หมายเหตุ: ปัจจุบันมีเพียงการเปลี่ยนแปลงชื่อและ URL เท่านั้นที่จะทริกเกอร์การดำเนินการนี้
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, changeInfo: object) => void
-
id
สตริง
-
changeInfo
ออบเจ็กต์
-
title
สตริง
-
URL
สตริง ไม่บังคับ
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
ทริกเกอร์เมื่อลำดับของรายการในโฟลเดอร์เปลี่ยนแปลงเนื่องจากมีการจัดเรียงลำดับใน UI ฟังก์ชันนี้จะไม่ถูกเรียกใช้เป็นผลมาจากการเรียกใช้ move()
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, reorderInfo: object) => void
-
id
สตริง
-
reorderInfo
ออบเจ็กต์
-
childIds
string[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการสร้างบุ๊กมาร์กหรือโฟลเดอร์
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, bookmark: BookmarkTreeNode) => void
-
id
สตริง
-
บุ๊กมาร์ก
-
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการเริ่มเซสชันการนำเข้าบุ๊กมาร์ก Observer ที่มีค่าใช้จ่ายสูงควรละเว้นการอัปเดต onCreated จนกว่าจะมีการเรียกใช้ onImportEnded อย่างไรก็ตาม ผู้สังเกตการณ์ควรจัดการการแจ้งเตือนอื่นๆ ทันที
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
เริ่มทำงานเมื่อเซสชันการนำเข้าบุ๊กมาร์กสิ้นสุดลง
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
ทริกเกอร์เมื่อมีการย้ายบุ๊กมาร์กหรือโฟลเดอร์ไปยังโฟลเดอร์ระดับบนสุดอื่น
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, moveInfo: object) => void
-
id
สตริง
-
moveInfo
ออบเจ็กต์
-
ดัชนี
ตัวเลข
-
oldIndex
ตัวเลข
-
oldParentId
สตริง
-
parentId
สตริง
-
-
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
ทริกเกอร์เมื่อมีการนำบุ๊กมาร์กหรือโฟลเดอร์ออก เมื่อนำโฟลเดอร์ออกแบบเรียกซ้ำ ระบบจะส่งการแจ้งเตือนเดียวสำหรับโฟลเดอร์นั้น และจะไม่ส่งการแจ้งเตือนสำหรับเนื้อหาของโฟลเดอร์
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, removeInfo: object) => void
-
id
สตริง
-
removeInfo
ออบเจ็กต์
-
ดัชนี
ตัวเลข
-
โหนดChrome 48 ขึ้นไป
-
parentId
สตริง
-
-