refresh date: 2026-09-25 robots: noindex
สิทธิ์นี้จะทริกเกอร์คำเตือน
คำอธิบาย
ใช้ chrome.bookmarks API เพื่อสร้าง จัดระเบียบ และจัดการบุ๊กมาร์ก โปรดดูหน้าการลบล้างด้วย ซึ่งคุณสามารถใช้เพื่อสร้างหน้าการจัดการบุ๊กมาร์กที่กำหนดเองได้
สิทธิ์
bookmarks
ไฟล์ Manifest
คุณต้องประกาศสิทธิ์ "บุ๊กมาร์ก" ในไฟล์ Manifest ของส่วนขยายเพื่อใช้ API บุ๊กมาร์ก เช่น
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
วัตถุและพร็อพเพอร์ตี้
บุ๊กมาร์กจะจัดระเบียบเป็นโครงสร้างแบบต้นไม้ โดยแต่ละโหนดในต้นไม้จะเป็นบุ๊กมาร์กหรือโฟลเดอร์ (บางครั้งเรียกว่ากลุ่ม) แต่ละโหนดในโครงสร้างจะแสดงด้วยออบเจ็กต์ bookmarks.BookmarkTreeNode
มีการใช้พร็อพเพอร์ตี้ BookmarkTreeNode ทั่วทั้ง chrome.bookmarks API ตัวอย่างเช่น เมื่อคุณเรียกใช้ bookmarks.create คุณจะส่งผ่านโหนดหลักของโหนดใหม่ (parentId) และพร็อพเพอร์ตี้ index, title และ url ของโหนด (ไม่บังคับ) ดูข้อมูลเกี่ยวกับพร็อพเพอร์ตี้ที่โหนดมีได้ที่ bookmarks.BookmarkTreeNode
ตัวอย่าง
โค้ดต่อไปนี้จะสร้างโฟลเดอร์ที่มีชื่อว่า "Extension bookmarks" อาร์กิวเมนต์แรกของ 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
number ไม่บังคับ
เวลาที่สร้างโหนดนี้ในหน่วยมิลลิวินาทีนับตั้งแต่ Epoch (
new Date(dateAdded)) -
dateGroupModified
number ไม่บังคับ
เวลาที่เนื้อหาของโฟลเดอร์นี้มีการเปลี่ยนแปลงครั้งล่าสุด โดยมีหน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
dateLastUsed
number ไม่บังคับ
Chrome 114 ขึ้นไปเวลาที่เปิดโหนดนี้ครั้งล่าสุด โดยมีหน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch ไม่ได้ตั้งค่าสำหรับโฟลเดอร์
-
folderType
FolderType ไม่บังคับ
Chrome 134 ขึ้นไปหากมี โฟลเดอร์นี้เป็นโฟลเดอร์ที่เบราว์เซอร์เพิ่มเข้ามา และผู้ใช้หรือส่วนขยายจะแก้ไขไม่ได้ โหนดย่อยอาจมีการแก้ไข หากโหนดนี้ไม่ได้ตั้งค่าพร็อพเพอร์ตี้
unmodifiableละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น)โดยอาจมีโหนดของชนิดโฟลเดอร์แต่ละประเภทเป็นศูนย์ หนึ่ง หรือหลายโหนดก็ได้ เบราว์เซอร์อาจเพิ่มหรือนำโฟลเดอร์ออกได้ แต่จะดำเนินการผ่าน API ของส่วนขยายไม่ได้
-
id
สตริง
ตัวระบุที่ไม่ซ้ำกันสำหรับโหนด รหัสจะไม่ซ้ำกันภายในโปรไฟล์ปัจจุบัน และจะยังคงใช้ได้แม้ว่าจะรีสตาร์ทเบราว์เซอร์แล้วก็ตาม
-
ดัชนี
number ไม่บังคับ
ตำแหน่งที่อิงตาม 0 ของโหนดนี้ภายในโฟลเดอร์หลัก
-
parentId
สตริง ไม่บังคับ
idของโฟลเดอร์หลัก ละเว้นสำหรับโหนดรูท -
การซิงค์
บูลีน
Chrome 134 ขึ้นไประบุว่าเบราว์เซอร์จะซิงค์โหนดนี้กับพื้นที่เก็บข้อมูลของบัญชีระยะไกลของผู้ใช้หรือไม่ ซึ่งสามารถใช้เพื่อแยกความแตกต่างระหว่าง
FolderTypeเดียวกันในเวอร์ชันบัญชีและเวอร์ชันในเครื่องเท่านั้น ค่าของพร็อพเพอร์ตี้นี้อาจเปลี่ยนแปลงสำหรับโหนดที่มีอยู่ เช่น เป็นผลมาจากการดำเนินการของผู้ใช้หมายเหตุ: ข้อมูลนี้จะแสดงว่าโหนดได้รับการบันทึกไว้ในผู้ให้บริการบัญชีในตัวของเบราว์เซอร์หรือไม่ โหนดอาจซิงค์ผ่านบุคคลที่สามได้ แม้ว่าค่านี้จะเป็นเท็จก็ตาม
สำหรับโหนดที่มีการจัดการ (โหนดที่ตั้งค่า
unmodifiableเป็นtrue) พร็อพเพอร์ตี้นี้จะเป็นfalseเสมอ -
title
สตริง
ข้อความที่แสดงสำหรับโหนด
-
unmodifiable
"managed"
ไม่บังคับระบุสาเหตุที่แก้ไขโหนดนี้ไม่ได้ ค่า
managedบ่งชี้ว่าโหนดนี้ได้รับการกำหนดค่าโดยผู้ดูแลระบบหรือผู้ปกครองของผู้ใช้ภายใต้การควบคุมดูแล ละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น) -
URL
สตริง ไม่บังคับ
URL ที่จะไปยังเมื่อผู้ใช้คลิกบุ๊กมาร์ก ละเว้นสำหรับโฟลเดอร์
BookmarkTreeNodeUnmodifiable
ระบุสาเหตุที่แก้ไขโหนดนี้ไม่ได้ ค่า managed บ่งชี้ว่าโหนดนี้ได้รับการกำหนดค่าโดยผู้ดูแลระบบ ละเว้นหากผู้ใช้และส่วนขยายแก้ไขโหนดได้ (ค่าเริ่มต้น)
ค่า
"managed"
CreateDetails
ออบเจ็กต์ที่ส่งไปยังฟังก์ชัน create()
พร็อพเพอร์ตี้
-
ดัชนี
number ไม่บังคับ
-
parentId
สตริง ไม่บังคับ
ค่าเริ่มต้นคือโฟลเดอร์บุ๊กมาร์กอื่นๆ
-
title
สตริง ไม่บังคับ
-
URL
สตริง ไม่บังคับ
FolderType
ระบุประเภทของโฟลเดอร์
ค่าแจกแจง
"bookmarks-bar"
โฟลเดอร์ที่มีเนื้อหาแสดงอยู่ที่ด้านบนของหน้าต่างเบราว์เซอร์
"other"
บุ๊กมาร์กที่แสดงในรายการบุ๊กมาร์กทั้งหมดในทุกแพลตฟอร์ม
"mobile"
บุ๊กมาร์กที่โดยทั่วไปจะพร้อมใช้งานในอุปกรณ์เคลื่อนที่ของผู้ใช้ แต่สามารถแก้ไขได้โดยส่วนขยายหรือในเครื่องมือจัดการบุ๊กมาร์ก
"managed"
โฟลเดอร์ระดับบนสุดที่อาจปรากฏขึ้นหากผู้ดูแลระบบหรือผู้ปกครองของผู้ใช้ภายใต้การควบคุมดูแลได้กำหนดค่าบุ๊กมาร์กไว้
พร็อพเพอร์ตี้
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Chrome จะไม่จำกัดการดำเนินการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Chrome จะไม่จำกัดการดำเนินการเขียนบุ๊กมาร์กอีกต่อไป
ค่า
1000000
ROOT_NODE_ID
id ที่เชื่อมโยงกับโหนดระดับราก
ค่า
"0"
เมธอด
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
): Promise<BookmarkTreeNode>
สร้างบุ๊กมาร์กหรือโฟลเดอร์ภายใต้ parentId ที่ระบุ หาก URL เป็น NULL หรือไม่มี URL รายการนั้นจะเป็นโฟลเดอร์
พารามิเตอร์
-
บุ๊กมาร์ก
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูล BookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
idOrIdList
string | [string, ...string[]]
รหัสค่าสตริงเดียวหรืออาร์เรย์ของรหัสค่าสตริง
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลรายการย่อยของรหัส BookmarkTreeNode ที่ระบุ
พารามิเตอร์
-
id
สตริง
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลบุ๊กมาร์กที่เพิ่มล่าสุด
พารามิเตอร์
-
numberOfItems
ตัวเลข
จำนวนรายการสูงสุดที่จะแสดงผล
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลส่วนหนึ่งของลำดับชั้นบุ๊กมาร์ก โดยเริ่มจากโหนดที่ระบุ
พารามิเตอร์
-
id
สตริง
รหัสของรูทของโครงสร้างย่อยที่จะดึงข้อมูล
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getTree()
chrome.bookmarks.getTree(
callback?: function,
): Promise<BookmarkTreeNode[]>
ดึงข้อมูลลำดับชั้นของบุ๊กมาร์กทั้งหมด
พารามิเตอร์
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
): Promise<BookmarkTreeNode>
ย้าย BookmarkTreeNode ที่ระบุไปยังตำแหน่งที่ระบุ
พารามิเตอร์
-
id
สตริง
-
ปลายทาง
ออบเจ็กต์
-
ดัชนี
number ไม่บังคับ
-
parentId
สตริง ไม่บังคับ
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
): Promise<void>
นำบุ๊กมาร์กหรือโฟลเดอร์บุ๊กมาร์กที่ว่างเปล่าออก
พารามิเตอร์
-
id
สตริง
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
): Promise<void>
นำโฟลเดอร์บุ๊กมาร์กออกซ้ำๆ
พารามิเตอร์
-
id
สตริง
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
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
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(results: BookmarkTreeNode[]) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode[]>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
): Promise<BookmarkTreeNode>
อัปเดตพร็อพเพอร์ตี้ของบุ๊กมาร์กหรือโฟลเดอร์ ระบุเฉพาะพร็อพเพอร์ตี้ที่ต้องการเปลี่ยนแปลง พร็อพเพอร์ตี้ที่ไม่ได้ระบุจะไม่มีการเปลี่ยนแปลง หมายเหตุ: ปัจจุบันระบบรองรับเฉพาะ "title" และ "url" เท่านั้น
พารามิเตอร์
-
id
สตริง
-
การเปลี่ยนแปลง
ออบเจ็กต์
-
title
สตริง ไม่บังคับ
-
URL
สตริง ไม่บังคับ
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: BookmarkTreeNode) => void
-
ผลลัพธ์
-
การคืนสินค้า
-
Promise<BookmarkTreeNode>
Chrome 90 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
กิจกรรม
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
สตริง
-
-