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.
Izin
bookmarks
Anda harus mendeklarasikan izin "bookmark" di manifes ekstensi untuk menggunakan bookmark API. Contoh:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
Konsep dan penggunaan
Objek dan properti
Bookmark diatur dalam hierarki, dengan setiap node dalam hierarki adalah bookmark atau folder (terkadang disebut grup). Setiap node dalam hierarki direpresentasikan oleh objek bookmarks.BookmarkTreeNode.
Properti BookmarkTreeNode
digunakan di seluruh chrome.bookmarks
API. Misalnya, saat
memanggil bookmarks.create, Anda meneruskan induk node baru (parentId
), dan, secara opsional, properti index
, title
, dan url
node. Lihat bookmarks.BookmarkTreeNode untuk mengetahui informasi
tentang properti yang dapat dimiliki node.
Contoh
Kode berikut membuat folder dengan judul "Bookmark ekstensi". Argumen pertama untuk
create()
menentukan properti untuk folder baru. Argumen kedua menentukan fungsi yang akan
dijalankan 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. Karena 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 repositori chrome-extension-samples.
Jenis
BookmarkTreeNode
Node (bookmark atau folder) dalam hierarki bookmark. Node turunan diurutkan dalam folder induknya.
Properti
-
children
BookmarkTreeNode[] opsional
Daftar turunan node ini yang diurutkan.
-
dateAdded
number opsional
Saat node ini dibuat, dalam milidetik sejak epoch (
new Date(dateAdded)
). -
dateGroupModified
number opsional
Kapan konten folder ini terakhir kali diubah, dalam milidetik sejak epoch.
-
dateLastUsed
number opsional
Chrome 114+Kapan node ini terakhir dibuka, dalam milidetik sejak epoch. Tidak ditetapkan untuk folder.
-
id
string
ID unik untuk node. ID bersifat unik dalam profil saat ini, dan tetap valid bahkan setelah browser dimulai ulang.
-
indeks
number opsional
Posisi node ini berbasis 0 dalam folder induknya.
-
parentId
string opsional
id
folder induk. Dihilangkan untuk node root. -
judul
string
Teks yang ditampilkan untuk node.
-
tidak dapat diubah
"managed"
opsionalMenunjukkan alasan node ini tidak dapat diubah. Nilai
managed
menunjukkan bahwa node ini dikonfigurasi oleh administrator sistem atau oleh wali pengguna yang diawasi. Dihilangkan jika node dapat diubah oleh pengguna dan ekstensi (default). -
url
string opsional
URL yang dituju saat pengguna mengklik bookmark. Dihilangkan untuk folder.
BookmarkTreeNodeUnmodifiable
Menunjukkan alasan node ini tidak dapat diubah. Nilai managed
menunjukkan bahwa node ini dikonfigurasi oleh administrator sistem. Dihilangkan jika node dapat diubah oleh pengguna dan ekstensi (default).
Nilai
"managed"
CreateDetails
Objek yang diteruskan ke fungsi create().
Properti
-
indeks
number opsional
-
parentId
string opsional
Setelan default-nya adalah folder Bookmark Lainnya.
-
judul
string opsional
-
url
string opsional
Properti
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Operasi tulis bookmark tidak lagi dibatasi oleh Chrome.
Nilai
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Operasi tulis bookmark tidak lagi dibatasi oleh Chrome.
Nilai
1000000
Metode
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
)
Membuat bookmark atau folder di bawah parentId yang ditentukan. Jika URL adalah NULL atau tidak ada, URL tersebut akan menjadi folder.
Parameter
-
bookmark
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(result: BookmarkTreeNode) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
)
Mengambil BookmarkTreeNode yang ditentukan.
Parameter
-
idOrIdList
string | [string, ...string[]]
Satu ID bernilai string, atau array ID bernilai string
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(results: BookmarkTreeNode[]) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
)
Mengambil turunan dari ID BookmarkTreeNode yang ditentukan.
Parameter
-
id
string
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(results: BookmarkTreeNode[]) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
)
Mengambil bookmark yang baru ditambahkan.
Parameter
-
numberOfItems
angka
Jumlah maksimum item untuk ditampilkan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(results: BookmarkTreeNode[]) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
)
Mengambil bagian dari hierarki Bookmark, dimulai dari node yang ditentukan.
Parameter
-
id
string
ID root sub-pohon yang akan diambil.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(results: BookmarkTreeNode[]) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getTree()
chrome.bookmarks.getTree(
callback?: function,
)
Mengambil seluruh hierarki Bookmark.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(results: BookmarkTreeNode[]) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
)
Memindahkan BookmarkTreeNode yang ditentukan ke lokasi yang disediakan.
Parameter
-
id
string
-
destination
objek
-
indeks
number opsional
-
parentId
string opsional
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(result: BookmarkTreeNode) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
)
Menghapus bookmark atau folder bookmark kosong.
Parameter
-
id
string
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
)
Menghapus folder bookmark secara rekursif.
Parameter
-
id
string
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
)
Menelusuri BookmarkTreeNodes yang cocok dengan kueri yang diberikan. Kueri yang ditentukan dengan objek menghasilkan BookmarkTreeNodes yang cocok dengan semua properti yang ditentukan.
Parameter
-
kueri
string | objek
String kata dan frasa yang dikutip yang dicocokkan dengan URL dan judul bookmark, atau objek. Jika objek, properti
query
,url
, dantitle
dapat ditentukan dan bookmark yang cocok dengan semua properti yang ditentukan akan dihasilkan.-
kueri
string opsional
String kata dan frasa yang dikutip yang dicocokkan dengan URL dan judul bookmark.
-
judul
string opsional
Judul bookmark; cocok persis.
-
url
string opsional
URL bookmark; cocok dengan verbatim. Perhatikan bahwa folder tidak memiliki URL.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(results: BookmarkTreeNode[]) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
)
Memperbarui properti bookmark atau folder. Tentukan hanya properti yang ingin Anda ubah; properti yang tidak ditentukan tidak akan diubah. Catatan: Saat ini, hanya 'title' dan 'url' yang didukung.
Parameter
-
id
string
-
perubahan
objek
-
judul
string opsional
-
url
string opsional
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(result: BookmarkTreeNode) => void
-
hasil
-
Hasil
-
Promise<BookmarkTreeNode>
Chrome 90+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. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
Acara
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
Diaktifkan saat bookmark atau folder berubah. Catatan: Saat ini, hanya perubahan judul dan URL yang memicunya.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(id: string, changeInfo: object) => void
-
id
string
-
changeInfo
objek
-
judul
string
-
url
string opsional
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Diaktifkan saat turunan folder telah mengubah urutannya karena urutan diurutkan di UI. Ini tidak dipanggil sebagai hasil dari move().
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(id: string, reorderInfo: object) => void
-
id
string
-
reorderInfo
objek
-
childIds
string[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
Diaktifkan saat bookmark atau folder dibuat.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(id: string, bookmark: BookmarkTreeNode) => void
-
id
string
-
bookmark
-
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 lainnya.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
Diaktifkan saat sesi impor bookmark berakhir.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
Diaktifkan saat bookmark atau folder dipindahkan ke folder induk yang berbeda.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(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 saat bookmark atau folder dihapus. Saat folder dihapus secara rekursif, satu notifikasi akan diaktifkan untuk folder, dan tidak ada untuk kontennya.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(id: string, removeInfo: object) => void
-
id
string
-
removeInfo
objek
-
indeks
angka
-
nodeChrome 48+
-
parentId
string
-
-