คำอธิบาย
ใช้ chrome.bookmarks
API เพื่อสร้าง จัดระเบียบ และจัดการบุ๊กมาร์ก นอกจากนี้ โปรดดูลบล้างหน้า ซึ่งคุณสามารถใช้เพื่อสร้างหน้าการจัดการบุ๊กมาร์กที่กำหนดเอง
สิทธิ์
bookmarks
คุณต้องประกาศ "บุ๊กมาร์ก" สิทธิ์ในไฟล์ Manifest ของส่วนขยายเพื่อใช้ 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);
},
);
ข้อมูลโค้ดถัดไปจะสร้างบุ๊กมาร์กที่ชี้ไปยังเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์เกี่ยวกับส่วนขยาย ตั้งแต่ปี หากการสร้างบุ๊กมาร์กล้มเหลว โค้ดนี้ไม่มีปัญหาที่จะกำหนด ฟังก์ชัน Callback
chrome.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง Bookmarks API จาก chrome-extension-samples ที่เก็บได้
ประเภท
BookmarkTreeNode
โหนด (บุ๊กมาร์กหรือโฟลเดอร์) ในแผนผังบุ๊กมาร์ก โหนดย่อยจะมีลำดับอยู่ในโฟลเดอร์หลัก
พร็อพเพอร์ตี้
-
เด็ก
BookmarkTreeNode[] ไม่บังคับ
รายการย่อยของโหนดนี้ตามลำดับ
-
dateAdded
หมายเลข ไม่บังคับ
เมื่อสร้างโหนดนี้ หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch (
new Date(dateAdded)
) -
dateGroupModified
หมายเลข ไม่บังคับ
เมื่อเนื้อหาของโฟลเดอร์นี้มีการเปลี่ยนแปลงครั้งล่าสุด หน่วยเป็นมิลลิวินาทีตั้งแต่ Epoch
-
dateLastUsed
หมายเลข ไม่บังคับ
Chrome 114 ขึ้นไปเวลาที่โหนดนี้เปิดครั้งล่าสุด หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch ไม่ได้ตั้งค่าสำหรับโฟลเดอร์
-
id
สตริง
ตัวระบุที่ไม่ซ้ำกันสำหรับโหนด รหัสจะไม่ซ้ำกันภายในโปรไฟล์ปัจจุบัน และจะยังคงใช้ได้แม้ว่าจะรีสตาร์ทเบราว์เซอร์ไปแล้ว
-
ดัชนี
หมายเลข ไม่บังคับ
ตำแหน่งแบบ 0 ของโหนดนี้ในโฟลเดอร์ระดับบนสุด
-
parentId
string ไม่บังคับ
id
ของโฟลเดอร์หลัก ละเว้นสำหรับโหนดราก -
title
สตริง
ข้อความที่แสดงสำหรับโหนด
-
ไม่สามารถแก้ไขได้
"managed"
ไม่บังคับระบุสาเหตุที่โหนดนี้ไม่สามารถแก้ไขได้ ค่า
managed
บ่งชี้ว่าผู้ดูแลระบบหรือผู้ดูแลของผู้ใช้ภายใต้การควบคุมดูแลได้กำหนดค่าโหนดนี้ ละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น) -
URL
string ไม่บังคับ
URL ที่นำทางไปเมื่อผู้ใช้คลิกบุ๊กมาร์ก ละเว้นสำหรับโฟลเดอร์
BookmarkTreeNodeUnmodifiable
ระบุสาเหตุที่โหนดนี้ไม่สามารถแก้ไขได้ ค่า managed
บ่งชี้ว่าผู้ดูแลระบบกำหนดค่าโหนดนี้ ละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น)
ค่า
"จัดการ"
CreateDetails
ออบเจ็กต์ที่ส่งไปยังฟังก์ชัน create()
พร็อพเพอร์ตี้
-
ดัชนี
หมายเลข ไม่บังคับ
-
parentId
string ไม่บังคับ
ค่าเริ่มต้นคือโฟลเดอร์บุ๊กมาร์กอื่น
-
title
string ไม่บังคับ
-
URL
string ไม่บังคับ
พร็อพเพอร์ตี้
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Chrome ไม่ได้จำกัดการดำเนินการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Chrome ไม่ได้จำกัดการดำเนินการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000000
เมธอด
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
)
สร้างบุ๊กมาร์กหรือโฟลเดอร์ภายใต้ parentId ที่ระบุ หาก URL ไม่มีข้อมูลหรือไม่มี URL จะเป็นโฟลเดอร์
พารามิเตอร์
-
บุ๊กมาร์ก
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
)
เรียก BookmarksTreeNode ที่ระบุ
พารามิเตอร์
-
idOrIdList
string | [สตริง, ...สตริง[]]
รหัสที่มีค่าสตริงเดียว หรืออาร์เรย์ของรหัสที่มีค่าสตริง
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
)
เรียกข้อมูลรายการย่อยของรหัส BookmarksTreeNode ที่ระบุ
พารามิเตอร์
-
id
สตริง
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
)
เรียกข้อมูลบุ๊กมาร์กที่เพิ่มล่าสุด
พารามิเตอร์
-
numberOfItems
ตัวเลข
จำนวนรายการสูงสุดที่จะแสดง
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
)
เรียกข้อมูลบางส่วนของลำดับชั้นบุ๊กมาร์ก โดยเริ่มต้นที่โหนดที่ระบุ
พารามิเตอร์
-
id
สตริง
รหัสของรูทของแผนผังย่อยที่จะดึงข้อมูล
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
getTree()
chrome.bookmarks.getTree(
callback?: function,
)
เรียกข้อมูลลำดับชั้นของบุ๊กมาร์กทั้งหมด
พารามิเตอร์
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
)
ย้าย BookmarksTreeNode ที่ระบุไปยังตำแหน่งที่กำหนด
พารามิเตอร์
-
id
สตริง
-
ปลายทาง
ออบเจ็กต์
-
ดัชนี
หมายเลข ไม่บังคับ
-
parentId
string ไม่บังคับ
-
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
)
นำบุ๊กมาร์กหรือโฟลเดอร์บุ๊กมาร์กที่ว่างเปล่าออก
พารามิเตอร์
-
id
สตริง
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำมั่นสัญญา<โมฆะ>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
)
นำโฟลเดอร์บุ๊กมาร์กออกซ้ำๆ
พารามิเตอร์
-
id
สตริง
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำมั่นสัญญา<โมฆะ>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
)
ค้นหา BookmarksTreeNodes ที่ตรงกับคำค้นหาที่ระบุ การค้นหาที่ระบุด้วยออบเจ็กต์จะสร้าง BookmarksTreeNodes ที่ตรงกับพร็อพเพอร์ตี้ที่ระบุไว้ทั้งหมด
พารามิเตอร์
-
query
string | ออบเจ็กต์
สตริงของคำและวลีที่ยกมาซึ่งจับคู่กับ URL และชื่อบุ๊กมาร์ก หรือวัตถุหนึ่งๆ หากเป็นออบเจ็กต์ ระบบอาจระบุพร็อพเพอร์ตี้
query
,url
และtitle
และจะสร้างบุ๊กมาร์กที่ตรงกับพร็อพเพอร์ตี้ที่ระบุไว้ทั้งหมด-
query
string ไม่บังคับ
สตริงของคำและวลีที่ยกมาซึ่งจับคู่กับ URL และชื่อบุ๊กมาร์ก
-
title
string ไม่บังคับ
ชื่อของบุ๊กมาร์ก จับคู่คำต่อคำ
-
URL
string ไม่บังคับ
URL ของบุ๊กมาร์ก จับคู่คำต่อคำ โปรดทราบว่าโฟลเดอร์ไม่มี URL
-
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
)
อัปเดตคุณสมบัติของบุ๊กมาร์กหรือโฟลเดอร์ ระบุเฉพาะพร็อพเพอร์ตี้ที่ต้องการเปลี่ยนแปลง พร็อพเพอร์ตี้ที่ไม่ได้ระบุจะไม่ได้รับการเปลี่ยนแปลง หมายเหตุ: ขณะนี้มีเพียง "ชื่อ" เท่านั้น และ "url" ได้
พารามิเตอร์
-
id
สตริง
-
การเปลี่ยนแปลง
ออบเจ็กต์
-
title
string ไม่บังคับ
-
URL
string ไม่บังคับ
-
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
กิจกรรม
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อบุ๊กมาร์กหรือโฟลเดอร์มีการเปลี่ยนแปลง หมายเหตุ: ขณะนี้มีเพียงการเปลี่ยนแปลงชื่อและ URL เท่านั้นที่จะทริกเกอร์การตั้งค่านี้
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, changeInfo: object) => void
-
id
สตริง
-
changeInfo
ออบเจ็กต์
-
title
สตริง
-
URL
string ไม่บังคับ
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
เริ่มทำงานเมื่อโฟลเดอร์ย่อยมีการเปลี่ยนแปลงลำดับเนื่องจากมีการจัดเรียงลำดับใน UI โดยไม่เรียกกรณีนี้ว่าเกิดขึ้นจาก Move()
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, reorderInfo: object) => void
-
id
สตริง
-
reorderInfo
ออบเจ็กต์
-
childIds
สตริง[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
เริ่มทำงานเมื่อสร้างบุ๊กมาร์กหรือโฟลเดอร์
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, bookmark: BookmarkTreeNode) => void
-
id
สตริง
-
บุ๊กมาร์ก
-
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
เริ่มทำงานเมื่อเริ่มเซสชันการนำเข้าบุ๊กมาร์ก ผู้สังเกตการณ์ที่มีราคาสูงควรเพิกเฉยต่อการอัปเดต 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,
)
เริ่มทำงานเมื่อนำบุ๊กมาร์กหรือโฟลเดอร์ออก เมื่อนำโฟลเดอร์ออกซ้ำๆ โฟลเดอร์นั้นจะมีการแจ้งเตือน 1 รายการเริ่มทำงานโดยไม่มีการแจ้งเตือนสำหรับเนื้อหา
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, removeInfo: object) => void
-
id
สตริง
-
removeInfo
ออบเจ็กต์
-
ดัชนี
ตัวเลข
-
โหนดChrome 48 ขึ้นไป
-
parentId
สตริง
-
-