chrome.bookmarks

Deskripsi

Gunakan chrome.bookmarks API untuk membuat, mengatur, dan memanipulasi bookmark. Lihat juga Mengganti Halaman, yang dapat Anda gunakan untuk membuat halaman Pengelola Bookmark kustom.

Mengklik bintang akan menambahkan bookmark
Mengklik bintang akan menambahkan bookmark.

Izin

bookmarks

Anda harus mendeklarasikan "bookmark" izin di manifes ekstensi untuk menggunakan bookmark API. Contoh:

{
  "name": "My extension",
  ...
  "permissions": [
    "bookmarks"
  ],
  ...
}

Konsep dan penggunaan

Objek dan properti

Bookmark diatur dalam pohon, di mana setiap {i>node<i} dalam pohon adalah bookmark atau folder (terkadang disebut grup). Setiap {i>node<i} dalam pohon direpresentasikan oleh bookmarks.BookmarkTreeNode.

Properti BookmarkTreeNode digunakan di seluruh chrome.bookmarks API. Misalnya, ketika Anda panggil bookmarks.create, Anda meneruskan induk node baru (parentId), dan, secara opsional, properti index, title, dan url node. Lihat bookmarks.BookmarkTreeNode untuk mengetahui informasi properti yang dapat dimiliki {i>node<i}.

Contoh

Kode berikut membuat folder dengan judul "Bookmark ekstensi". Argumen pertama untuk create() menentukan properti untuk folder baru. Argumen kedua mendefinisikan {i>function<i} yang dieksekusi setelah folder dibuat.

chrome.bookmarks.create(
  {'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
  function(newFolder) {
    console.log("added folder: " + newFolder.title);
  },
);

Cuplikan berikutnya membuat bookmark yang mengarah ke dokumentasi developer untuk ekstensi. Sejak tidak ada hal buruk yang akan terjadi jika pembuatan bookmark gagal, kode ini tidak perlu menentukan fungsi callback.

chrome.bookmarks.create({
  'parentId': extensionsFolderId,
  'title': 'Extensions doc',
  'url': 'https://developer.chrome.com/docs/extensions',
});

Untuk mencoba API ini, instal contoh Bookmarks API dari chrome-extension-samples repositori resource.

Jenis

BookmarkTreeNode

Simpul (bookmark atau folder) di pohon bookmark. Node turunan diurutkan dalam folder induknya.

Properti

  • children

    BookmarkTreeNode[] opsional

    Daftar turunan node ini yang diurutkan.

  • dateAdded

    angka opsional

    Saat node ini dibuat, dalam milidetik sejak epoch (new Date(dateAdded)).

  • dateGroupModified

    angka opsional

    Saat konten folder ini terakhir berubah, dalam milidetik sejak epoch.

  • dateLastUsed

    angka opsional

    Chrome 114 dan yang lebih baru

    Saat node ini terakhir dibuka, dalam milidetik sejak epoch. Tidak ditetapkan untuk folder.

  • id

    string

    ID unik untuk node. ID bersifat unik di dalam profil saat ini, dan akan tetap valid bahkan setelah browser dimulai ulang.

  • indeks

    angka opsional

    Posisi berbasis 0 dari node ini dalam folder induknya.

  • parentId

    string opsional

    id dari folder induk. Dihilangkan untuk node root.

  • judul

    string

    Teks yang ditampilkan untuk node.

  • tidak dapat diubah

    "managed"
     opsional

    Menunjukkan alasan node ini tidak dapat diubah. Nilai managed menunjukkan bahwa node ini dikonfigurasi oleh administrator sistem atau oleh penanggung jawab pengguna yang diawasi. Dihapus jika node dapat diubah oleh pengguna dan ekstensi (default).

  • url

    string opsional

    URL yang dibuka saat pengguna mengklik bookmark. Dihapus untuk folder.

BookmarkTreeNodeUnmodifiable

Chrome 44 dan yang lebih baru

Menunjukkan alasan node ini tidak dapat diubah. Nilai managed menunjukkan bahwa node ini dikonfigurasi oleh administrator sistem. Dihapus jika node dapat diubah oleh pengguna dan ekstensi (default).

Nilai

"terkelola"

CreateDetails

Objek diteruskan ke fungsi create().

Properti

  • indeks

    angka opsional

  • parentId

    string opsional

    Setelan defaultnya adalah folder Bookmark Lainnya.

  • judul

    string opsional

  • url

    string opsional

Properti

MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

Tidak digunakan lagi

Operasi penulisan bookmark tidak lagi dibatasi oleh Chrome.

Nilai

1.000.000

MAX_WRITE_OPERATIONS_PER_HOUR

Tidak digunakan lagi

Operasi penulisan bookmark tidak lagi dibatasi oleh Chrome.

Nilai

1.000.000

Metode

create()

Janji
chrome.bookmarks.create(
  bookmark: CreateDetails,
  callback?: function,
)

Membuat bookmark atau folder di bawah parentId yang ditentukan. Jika url NULL atau tidak ada, maka akan berupa folder.

Parameter

Hasil

  • Promise&lt;BookmarkTreeNode&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

get()

Janji
chrome.bookmarks.get(
  idOrIdList: string | [string, ...string[]],
  callback?: function,
)

Mengambil BookmarkTreeNode yang ditentukan.

Parameter

  • idOrIdList

    string | [string, ...string[]]

    ID bernilai string tunggal, atau array ID bernilai string

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (results: BookmarkTreeNode[]) => void

Hasil

  • Promise&lt;BookmarkTreeNode[]&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

getChildren()

Janji
chrome.bookmarks.getChildren(
  id: string,
  callback?: function,
)

Mengambil turunan id BookmarkTreeNode yang ditentukan.

Parameter

Hasil

  • Promise&lt;BookmarkTreeNode[]&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

getRecent()

Janji
chrome.bookmarks.getRecent(
  numberOfItems: number,
  callback?: function,
)

Mengambil bookmark yang baru saja ditambahkan.

Parameter

  • numberOfItems

    angka

    Jumlah maksimum item untuk ditampilkan.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (results: BookmarkTreeNode[]) => void

Hasil

  • Promise&lt;BookmarkTreeNode[]&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

getSubTree()

Janji
chrome.bookmarks.getSubTree(
  id: string,
  callback?: function,
)

Mengambil bagian dari hierarki Bookmarks, mulai dari node yang ditentukan.

Parameter

  • id

    string

    ID root subhierarki yang akan diambil.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (results: BookmarkTreeNode[]) => void

Hasil

  • Promise&lt;BookmarkTreeNode[]&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

getTree()

Janji
chrome.bookmarks.getTree(
  callback?: function,
)

Mengambil seluruh hierarki Bookmark.

Parameter

Hasil

  • Promise&lt;BookmarkTreeNode[]&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

move()

Janji
chrome.bookmarks.move(
  id: string,
  destination: object,
  callback?: function,
)

Memindahkan BookmarkTreeNode yang ditentukan ke lokasi yang disediakan.

Parameter

  • id

    string

  • destination

    objek

    • indeks

      angka opsional

    • parentId

      string opsional

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (result: BookmarkTreeNode) => void

Hasil

  • Promise&lt;BookmarkTreeNode&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

remove()

Janji
chrome.bookmarks.remove(
  id: string,
  callback?: function,
)

Menghapus bookmark atau folder bookmark kosong.

Parameter

  • id

    string

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

removeTree()

Janji
chrome.bookmarks.removeTree(
  id: string,
  callback?: function,
)

Menghapus folder bookmark secara berulang.

Parameter

  • id

    string

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

Janji
chrome.bookmarks.search(
  query: string | object,
  callback?: function,
)

Menelusuri BookmarkTreeNodes yang cocok dengan kueri tertentu. Kueri yang ditentukan dengan objek menghasilkan BookmarkTreeNode yang cocok dengan semua properti yang ditentukan.

Parameter

  • kueri

    string | objek

    Baik string kata dan frasa bertanda kutip yang dicocokkan dengan URL dan judul bookmark, atau objek. Jika sebuah objek, properti query, url, dan title dapat ditentukan dan bookmark yang cocok dengan semua properti yang ditentukan akan dibuat.

    • kueri

      string opsional

      String kata dan frasa bertanda kutip yang dicocokkan dengan URL dan judul bookmark.

    • judul

      string opsional

      Judul bookmark; cocok dengan kata demi kata.

    • url

      string opsional

      URL bookmark; cocok dengan kata demi kata. Perlu diketahui bahwa folder tidak memiliki URL.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (results: BookmarkTreeNode[]) => void

Hasil

  • Promise&lt;BookmarkTreeNode[]&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

update()

Janji
chrome.bookmarks.update(
  id: string,
  changes: object,
  callback?: function,
)

Memperbarui properti bookmark atau folder. Menentukan hanya properti yang ingin diubah; properti yang tidak ditetapkan akan dibiarkan tidak berubah. Catatan: Saat ini, hanya 'title' dan 'url' didukung.

Parameter

  • id

    string

  • perubahan

    objek

    • judul

      string opsional

    • url

      string opsional

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (result: BookmarkTreeNode) => void

Hasil

  • Promise&lt;BookmarkTreeNode&gt;

    Chrome 90 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.

Acara

onChanged

chrome.bookmarks.onChanged.addListener(
  callback: function,
)

Diaktifkan jika bookmark atau folder berubah. Catatan: Saat ini, hanya perubahan judul dan URL yang memicu hal ini.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    (id: string, changeInfo: object) => void

    • id

      string

    • changeInfo

      objek

      • judul

        string

      • url

        string opsional

onChildrenReordered

chrome.bookmarks.onChildrenReordered.addListener(
  callback: function,
)

Diaktifkan jika turunan folder telah mengubah urutannya karena urutan diurutkan di UI. Hal ini tidak dipanggil sebagai hasil dari move().

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    (id: string, reorderInfo: object) => void

    • id

      string

    • reorderInfo

      objek

      • childIds

        {i>string<i}[]

onCreated

chrome.bookmarks.onCreated.addListener(
  callback: function,
)

Diaktifkan saat bookmark atau folder dibuat.

Parameter

onImportBegan

chrome.bookmarks.onImportBegan.addListener(
  callback: function,
)

Diaktifkan saat sesi impor bookmark dimulai. Pengamat yang mahal harus mengabaikan update onCreated hingga onImportEnded diaktifkan. Pengamat tetap harus segera menangani notifikasi lain.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    () => void

onImportEnded

chrome.bookmarks.onImportEnded.addListener(
  callback: function,
)

Diaktifkan saat sesi impor bookmark berakhir.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    () => void

onMoved

chrome.bookmarks.onMoved.addListener(
  callback: function,
)

Diaktifkan jika bookmark atau folder dipindahkan ke folder induk yang berbeda.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    (id: string, moveInfo: object) => void

    • id

      string

    • moveInfo

      objek

      • indeks

        angka

      • oldIndex

        angka

      • oldParentId

        string

      • parentId

        string

onRemoved

chrome.bookmarks.onRemoved.addListener(
  callback: function,
)

Diaktifkan jika bookmark atau folder dihapus. Jika folder dihapus secara rekursif, satu notifikasi akan diaktifkan untuk folder tersebut, sedangkan tidak ada notifikasi untuk kontennya.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    (id: string, removeInfo: object) => void

    • id

      string

    • removeInfo

      objek