สิทธิ์นี้จะทริกเกอร์คำเตือน
คำอธิบาย
ใช้ chrome.bookmarks API เพื่อสร้าง จัดระเบียบ และจัดการบุ๊กมาร์ก ดูหน้าการลบล้างด้วย ซึ่งคุณใช้สร้างหน้าการจัดการบุ๊กมาร์กที่กำหนดเองได้
สิทธิ์
bookmarks
ไฟล์ Manifest
คุณต้องประกาศสิทธิ์ "บุ๊กมาร์ก" ในไฟล์ 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,
callback?: function,
): Promise<BookmarkTreeNode>
สร้างบุ๊กมาร์กหรือโฟลเดอร์ภายใต้ parentId ที่ระบุ หาก URL เป็น NULL หรือไม่มีอยู่ จะถือว่าเป็นโฟลเดอร์
พารามิเตอร์
-
บุ๊กมาร์ก
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
): Promise<BookmarkTreeNode[]>
เรียกข้อมูล BookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
idOrIdList
string | [string, ...string[]]
รหัสสตริงค่าเดียวหรืออาร์เรย์ของรหัสสตริง
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลบุตรหลานของ BookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
id
สตริง
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลบุ๊กมาร์กที่เพิ่มล่าสุด
พารามิเตอร์
-
numberOfItems
ตัวเลข
จำนวนสูงสุดของรายการที่จะแสดง
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลส่วนหนึ่งของลำดับชั้นของบุ๊กมาร์ก โดยเริ่มที่โหนดที่ระบุ
พารามิเตอร์
-
id
สตริง
รหัสของรูทของโครงสร้างย่อยที่จะดึงข้อมูล
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getTree()
chrome.bookmarks.getTree(
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลลำดับชั้นของบุ๊กมาร์กทั้งหมด
พารามิเตอร์
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
): Promise<BookmarkTreeNode>
ย้าย BookmarkTreeNode ที่ระบุไปยังตำแหน่งที่ระบุ
พารามิเตอร์
-
id
สตริง
-
ปลายทาง
ออบเจ็กต์
-
ดัชนี
หมายเลข ไม่บังคับ
-
parentId
สตริง ไม่บังคับ
-
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
): Promise<void>
นำบุ๊กมาร์กหรือโฟลเดอร์บุ๊กมาร์กที่ว่างเปล่าออก
พารามิเตอร์
-
id
สตริง
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
): Promise<void>
นำโฟลเดอร์บุ๊กมาร์กออกแบบเรียกซ้ำ
พารามิเตอร์
-
id
สตริง
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
): Promise<BookmarkTreeNode[]>
ค้นหา BookmarkTreeNodes ที่ตรงกับการค้นหาที่ระบุ การค้นหาที่ระบุด้วยออบเจ็กต์จะสร้าง BookmarkTreeNodes ที่ตรงกับพร็อพเพอร์ตี้ที่ระบุทั้งหมด
พารามิเตอร์
-
query
string | object
สตริงของคำและวลีที่ยกมาซึ่งตรงกับ URL และชื่อของบุ๊กมาร์ก หรือออบเจ็กต์ หากเป็นออบเจ็กต์ คุณจะระบุพร็อพเพอร์ตี้
query,urlและtitleได้ และระบบจะสร้างที่คั่นหน้าที่ตรงกับพร็อพเพอร์ตี้ที่ระบุทั้งหมด-
query
สตริง ไม่บังคับ
สตริงของคำและวลีที่ยกมาซึ่งตรงกับ URL และชื่อของบุ๊กมาร์ก
-
title
สตริง ไม่บังคับ
ชื่อของบุ๊กมาร์ก ตรงกันทุกประการ
-
URL
สตริง ไม่บังคับ
URL ของบุ๊กมาร์ก ตรงกันทุกประการ โปรดทราบว่าโฟลเดอร์ไม่มี URL
-
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
): Promise<BookmarkTreeNode>
อัปเดตพร็อพเพอร์ตี้ของบุ๊กมาร์กหรือโฟลเดอร์ ระบุเฉพาะพร็อพเพอร์ตี้ที่ต้องการเปลี่ยนแปลง ส่วนพร็อพเพอร์ตี้ที่ไม่ได้ระบุจะไม่มีการเปลี่ยนแปลง หมายเหตุ: ปัจจุบันรองรับเฉพาะ "title" และ "url"
พารามิเตอร์
-
id
สตริง
-
การเปลี่ยนแปลง
ออบเจ็กต์
-
title
สตริง ไม่บังคับ
-
URL
สตริง ไม่บังคับ
-
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
กิจกรรม
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
สตริง
-
-