chrome.bookmarks

คำอธิบาย

ใช้ 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

Chrome 44 ขึ้นไป

ระบุสาเหตุที่โหนดนี้ไม่สามารถแก้ไขได้ ค่า 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

สัญญา
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&lt;BookmarkTreeNode[]&gt;

    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&lt;BookmarkTreeNode&gt;

    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

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

        สตริง