คำอธิบาย
ใช้ chrome.bookmarks
API เพื่อสร้าง จัดระเบียบ และจัดการบุ๊กมาร์ก นอกจากนี้ โปรดดูลบล้างหน้า ซึ่งคุณสามารถใช้เพื่อสร้างหน้าการจัดการบุ๊กมาร์กที่กำหนดเองได้
![การคลิกดาวจะเพิ่มบุ๊กมาร์ก](https://developer.chrome.com/static/docs/extensions/reference/api/images/bookmarks.png?authuser=5&hl=th)
สิทธิ์
bookmarks
คุณต้องประกาศสิทธิ์ "บุ๊กมาร์ก" ในไฟล์ Manifest ของส่วนขยายเพื่อใช้ API ของบุ๊กมาร์ก เช่น
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
แนวคิดและการใช้งาน
ออบเจ็กต์และพร็อพเพอร์ตี้
บุ๊กมาร์กจะจัดระเบียบตามแผนผัง โดยแต่ละโหนดในโครงสร้างจะเป็นบุ๊กมาร์กหรือโฟลเดอร์ (บางครั้งเรียกว่ากลุ่ม) แต่ละโหนดในโครงสร้างจะแสดงด้วยออบเจ็กต์ bookmarks.BookmarkTreeNode
ใช้พร็อพเพอร์ตี้ BookmarkTreeNode
ใน API ของ chrome.bookmarks
ตัวอย่างเช่น เมื่อคุณเรียกใช้ 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-ตัวอย่าง
ประเภท
BookmarkTreeNode
โหนด (บุ๊กมาร์กหรือโฟลเดอร์) ในแผนผังบุ๊กมาร์ก โหนดย่อยจะได้รับการเรียงลำดับในโฟลเดอร์หลัก
พร็อพเพอร์ตี้
-
เด็ก
BookmarkTreeNode[] ไม่บังคับ
รายการย่อยของโหนดนี้ตามลำดับ
-
dateAdded
ตัวเลข ไม่บังคับ
เมื่อสร้างโหนดนี้ หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch (
new Date(dateAdded)
) -
dateGroupModified
ตัวเลข ไม่บังคับ
เมื่อเนื้อหาของโฟลเดอร์นี้มีการเปลี่ยนแปลงครั้งล่าสุด หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
dateLastUsed
ตัวเลข ไม่บังคับ
Chrome 114 ขึ้นไปเมื่อเปิดโหนดนี้ครั้งล่าสุด หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch ไม่ได้ตั้งค่าสำหรับโฟลเดอร์
-
id
string
ตัวระบุที่ไม่ซ้ำกันสำหรับโหนด รหัสจะไม่ซ้ำกันภายในโปรไฟล์ปัจจุบัน และยังคงใช้งานได้แม้ว่าจะรีสตาร์ทเบราว์เซอร์แล้วก็ตาม
-
ดัชนี
ตัวเลข ไม่บังคับ
ตำแหน่งฐาน 0 ของโหนดนี้ในโฟลเดอร์ระดับบนสุด
-
parentId
string ไม่บังคับ
id
ของโฟลเดอร์หลัก ละเว้นสำหรับโหนดรูท -
title
string
ข้อความที่แสดงสำหรับโหนด
-
ไม่สามารถแก้ไขได้
ไม่บังคับ
ระบุเหตุผลที่แก้ไขโหนดนี้ไม่ได้ ค่า
managed
บ่งชี้ว่าโหนดนี้ได้รับการกำหนดค่าโดยผู้ดูแลระบบหรือผู้ปกป้องรักษาผู้ใช้ของผู้ใช้ภายใต้การควบคุมดูแล ละเว้นในกรณีที่ผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น) -
url
string ไม่บังคับ
URL ที่นำทางไปเมื่อผู้ใช้คลิกที่บุ๊กมาร์ก ละเว้นสำหรับโฟลเดอร์
BookmarkTreeNodeUnmodifiable
ระบุเหตุผลที่แก้ไขโหนดนี้ไม่ได้ ค่า managed
บ่งบอกว่าผู้ดูแลระบบเป็นผู้กำหนดค่าโหนดนี้ ละเว้นในกรณีที่ผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น)
ค่า
CreateDetails
มีการส่งออบเจ็กต์ไปยังฟังก์ชัน create()
พร็อพเพอร์ตี้
-
ดัชนี
ตัวเลข ไม่บังคับ
-
parentId
string ไม่บังคับ
ค่าเริ่มต้นจะเป็นโฟลเดอร์บุ๊กมาร์กอื่น
-
title
string ไม่บังคับ
-
url
string ไม่บังคับ
พร็อพเพอร์ตี้
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Chrome จะไม่จํากัดการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000,000
MAX_WRITE_OPERATIONS_PER_HOUR
Chrome จะไม่จํากัดการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000,000
วิธีการ
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
)
สร้างบุ๊กมาร์กหรือโฟลเดอร์ภายใต้ parentId ที่ระบุ หาก URL เป็น NULL หรือขาดหายไป URL จะเป็นโฟลเดอร์
พารามิเตอร์
-
บุ๊กมาร์ก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
)
เรียก bookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
idOrIdList
สตริง | [สตริง, ...สตริง[]]
รหัสค่าสตริงเดียว หรืออาร์เรย์ของรหัสค่าสตริง
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลการแข่งขัน
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
)
เรียกข้อมูลรายการย่อยของรหัส bookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
id
string
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลการแข่งขัน
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
)
เรียกบุ๊กมาร์กที่เพิ่มล่าสุด
พารามิเตอร์
-
numberOfItems
ตัวเลข
จำนวนรายการสูงสุดที่จะส่งคืน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลการแข่งขัน
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
)
เรียกข้อมูลบางส่วนของลำดับชั้นของบุ๊กมาร์ก โดยเริ่มจากโหนดที่ระบุ
พารามิเตอร์
-
id
string
รหัสของรูทของแผนผังย่อยที่จะดึงข้อมูล
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลการแข่งขัน
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
getTree()
chrome.bookmarks.getTree(
callback?: function,
)
เรียกข้อมูลลำดับชั้นบุ๊กมาร์กทั้งหมด
พารามิเตอร์
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลการแข่งขัน
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
)
ย้าย bookmarkTreeNode ที่ระบุไปยังตำแหน่งที่ระบุ
พารามิเตอร์
-
id
string
-
ปลายทาง
ออบเจ็กต์
-
ดัชนี
ตัวเลข ไม่บังคับ
-
parentId
string ไม่บังคับ
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
)
นำบุ๊กมาร์กหรือโฟลเดอร์บุ๊กมาร์กที่ว่างเปล่าออก
พารามิเตอร์
-
id
string
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
)
นำโฟลเดอร์บุ๊กมาร์กออกซ้ำๆ
พารามิเตอร์
-
id
string
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
)
การค้นหา bookmarkTreeNodes ที่ตรงกับข้อความค้นหาที่ระบุ การค้นหาที่ระบุด้วยออบเจ็กต์จะสร้าง CookieTreeNodes ที่ตรงกับพร็อพเพอร์ตี้ที่ระบุทั้งหมด
พารามิเตอร์
-
query
สตริง | ออบเจ็กต์
สตริงคําและวลีที่ยกมา ซึ่งมีการจับคู่กับ URL และชื่อบุ๊กมาร์ก หรือออบเจ็กต์ หากเป็นออบเจ็กต์ ระบบอาจระบุพร็อพเพอร์ตี้
query
,url
และtitle
และสร้างบุ๊กมาร์กที่ตรงกับพร็อพเพอร์ตี้ที่ระบุทั้งหมด-
query
string ไม่บังคับ
สตริงของคำและวลีที่ยกมา ซึ่งจะจับคู่กับ URL และชื่อบุ๊กมาร์ก
-
title
string ไม่บังคับ
ชื่อของบุ๊กมาร์กจะตรงกันแบบคำต่อคำ
-
url
string ไม่บังคับ
URL ของบุ๊กมาร์ก จะตรงกันแบบคำต่อคำ โปรดทราบว่าโฟลเดอร์จะไม่มี URL
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลการแข่งขัน
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
)
อัปเดตคุณสมบัติของบุ๊กมาร์กหรือโฟลเดอร์ ระบุเฉพาะคุณสมบัติที่คุณต้องการเปลี่ยนแปลง โดยคุณสมบัติที่ไม่ได้ระบุจะไม่มีการเปลี่ยนแปลง หมายเหตุ: ปัจจุบันรองรับเฉพาะ "title" และ "url" เท่านั้น
พารามิเตอร์
-
id
string
-
การเปลี่ยนแปลง
ออบเจ็กต์
-
title
string ไม่บังคับ
-
url
string ไม่บังคับ
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไปManifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ
เหตุการณ์
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อบุ๊กมาร์กหรือโฟลเดอร์เปลี่ยนแปลง หมายเหตุ: ปัจจุบันมีเฉพาะการเปลี่ยนแปลงชื่อและ URL ที่จะทริกเกอร์เหตุการณ์ดังกล่าว
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, changeInfo: object) => void
-
id
string
-
changeInfo
ออบเจ็กต์
-
title
string
-
url
string ไม่บังคับ
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
เริ่มทำงานเมื่อรายการย่อยของโฟลเดอร์เปลี่ยนลำดับเนื่องจากมีการจัดเรียงลำดับใน UI จะไม่เรียกอันเป็นผลจากการย้าย()
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, reorderInfo: object) => void
-
id
string
-
reorderInfo
ออบเจ็กต์
-
childIds
สตริง[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการสร้างบุ๊กมาร์กหรือโฟลเดอร์
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, bookmark: BookmarkTreeNode) => void
-
id
string
-
บุ๊กมาร์ก
-
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
string
-
moveInfo
ออบเจ็กต์
-
ดัชนี
ตัวเลข
-
oldIndex
ตัวเลข
-
oldParentId
string
-
parentId
string
-
-
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
เริ่มทำงานเมื่อนำบุ๊กมาร์กหรือโฟลเดอร์ออก เมื่อนำโฟลเดอร์ออกซ้ำๆ จะมีการแจ้งเตือน 1 ครั้งสำหรับโฟลเดอร์นั้น โดยไม่มีการแจ้งเตือนสำหรับเนื้อหาในโฟลเดอร์
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, removeInfo: object) => void
-
id
string
-
removeInfo
ออบเจ็กต์
-
ดัชนี
ตัวเลข
-
โหนดChrome 48 ขึ้นไป
-
parentId
string
-
-