Deskripsi
Gunakan chrome.bookmarks API untuk membuat, mengatur, dan memanipulasi bookmark. Lihat juga Halaman Penggantian, yang dapat Anda gunakan untuk membuat halaman Pengelola Bookmark kustom.
Izin
bookmarksAnda harus mendeklarasikan izin "bookmarks" di manifes ekstensi untuk menggunakan bookmarks API. Contoh:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
Konsep dan penggunaan
Objek dan properti
Bookmark diatur dalam hierarki, dengan setiap node dalam hierarki berupa bookmark atau folder (terkadang disebut grup). Setiap node dalam hierarki diwakili oleh objek bookmarks.BookmarkTreeNode.
Properti BookmarkTreeNode digunakan di seluruh browser.bookmarks API. Misalnya, saat Anda
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.
browser.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 akan terjadi hal buruk jika pembuatan bookmark gagal, kode ini tidak perlu menentukan fungsi callback.
browser.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) di hierarki bookmark. Node turunan diurutkan dalam folder induknya.
Properti
-
turunan
BookmarkTreeNode[] opsional
Daftar turunan yang diurutkan dari node ini.
-
dateAdded
number opsional
Waktu pembuatan node ini, dalam milidetik sejak epoch (
new Date(dateAdded)). -
dateGroupModified
number opsional
Waktu terakhir konten folder ini diubah, dalam milidetik sejak epoch.
-
dateLastUsed
number opsional
Chrome 114+ browser.* sejak Chrome 148Kapan node ini terakhir dibuka, dalam milidetik sejak epoch. Tidak ditetapkan untuk folder.
-
folderType
FolderType opsional
Chrome 134+ browser.* sejak Chrome 148Jika ada, ini adalah folder yang ditambahkan oleh browser dan tidak dapat diubah oleh pengguna atau ekstensi. Node turunan dapat diubah, jika node ini tidak memiliki properti
unmodifiableyang ditetapkan. Dihilangkan jika node dapat diubah oleh pengguna dan ekstensi (default).Mungkin ada nol, satu, atau beberapa node dari setiap jenis folder. Folder dapat ditambahkan atau dihapus oleh browser, tetapi tidak melalui API ekstensi.
-
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 berbasis 0 dari node ini dalam folder induknya.
-
parentId
string opsional
idfolder induk. Dihilangkan untuk node root. -
menyinkronkan
boolean
Chrome 134+ browser.* sejak Chrome 148Apakah node ini disinkronkan dengan penyimpanan akun jarak jauh pengguna oleh browser. Ini dapat digunakan untuk membedakan antara versi akun dan versi khusus lokal dari
FolderTypeyang sama. Nilai properti ini dapat berubah untuk node yang ada, misalnya sebagai akibat dari tindakan pengguna.Catatan: ini mencerminkan apakah node disimpan ke penyedia akun bawaan browser. Node mungkin dapat disinkronkan melalui pihak ketiga, meskipun nilai ini salah.
Untuk node terkelola (node tempat
unmodifiableditetapkan ketrue), properti ini akan selalu berupafalse. -
judul
string
Teks yang ditampilkan untuk node.
-
tidak dapat diubah
"managed"
opsionalMenunjukkan alasan node ini tidak dapat diubah. Nilai
managedmenunjukkan 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 dibuka 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
Default-nya adalah folder Bookmark Lainnya.
-
judul
string opsional
-
url
string opsional
FolderType
Menunjukkan jenis folder.
Enum
"bookmarks-bar"
Folder yang kontennya ditampilkan di bagian atas jendela browser.
"other"
Bookmark yang ditampilkan dalam daftar lengkap bookmark di semua platform.
"mobile"
Bookmark umumnya tersedia di perangkat seluler pengguna, tetapi dapat diubah oleh ekstensi atau di pengelola bookmark.
"managed"
Folder tingkat teratas yang mungkin ada jika administrator sistem atau wali pengguna yang diawasi telah mengonfigurasi bookmark.
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
ROOT_NODE_ID
id yang terkait dengan node level root.
Nilai
"0"
Metode
create()
browser.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
Membuat bookmark atau folder di bawah parentId yang ditentukan. Jika URL bernilai NULL atau tidak ada, URL tersebut akan menjadi folder.
Parameter
-
bookmark
Hasil
-
Promise<BookmarkTreeNode>
Chrome 90+ browser.* sejak Chrome 148
get()
browser.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
Mengambil BookmarkTreeNode yang ditentukan.
Parameter
-
idOrIdList
string | [string, ...string[]]
Satu ID bernilai string, atau array ID bernilai string
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* sejak Chrome 148
getChildren()
browser.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
Mengambil turunan dari ID BookmarkTreeNode yang ditentukan.
Parameter
-
id
string
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* sejak Chrome 148
getRecent()
browser.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
Mengambil bookmark yang baru ditambahkan.
Parameter
-
numberOfItems
angka
Jumlah maksimum item untuk ditampilkan.
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* sejak Chrome 148
getSubTree()
browser.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
Mengambil bagian dari hierarki Bookmark, dimulai dari node yang ditentukan.
Parameter
-
id
string
ID root subhierarki yang akan diambil.
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* sejak Chrome 148
getTree()
browser.bookmarks.getTree(): Promise<BookmarkTreeNode[]>
Mengambil seluruh hierarki Bookmark.
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* sejak Chrome 148
move()
browser.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
Memindahkan BookmarkTreeNode yang ditentukan ke lokasi yang diberikan.
Parameter
-
id
string
-
destination
objek
-
indeks
number opsional
-
parentId
string opsional
-
Hasil
-
Promise<BookmarkTreeNode>
Chrome 90+ browser.* sejak Chrome 148
remove()
browser.bookmarks.remove(
id: string,
): Promise<void>
Menghapus bookmark atau folder bookmark kosong.
Parameter
-
id
string
Hasil
-
Promise<void>
Chrome 90+ browser.* sejak Chrome 148
removeTree()
browser.bookmarks.removeTree(
id: string,
): Promise<void>
Menghapus folder bookmark secara rekursif.
Parameter
-
id
string
Hasil
-
Promise<void>
Chrome 90+ browser.* sejak Chrome 148
search()
browser.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
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 | object
String kata dan frasa yang dikutip yang dicocokkan dengan URL dan judul bookmark, atau objek. Jika berupa objek, properti
query,url, dantitledapat ditentukan dan bookmark yang cocok dengan semua properti yang ditentukan akan dibuat.-
kueri
string opsional
String kata dan frasa yang dikutip yang dicocokkan dengan URL dan judul bookmark.
-
judul
string opsional
Judul bookmark; cocok verbatim.
-
url
string opsional
URL bookmark; cocok secara verbatim. Perhatikan bahwa folder tidak memiliki URL.
-
Hasil
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* sejak Chrome 148
update()
browser.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
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
-
Hasil
-
Promise<BookmarkTreeNode>
Chrome 90+ browser.* sejak Chrome 148
Acara
onChanged
browser.bookmarks.onChanged.addListener(
callback: function,
)
Diaktifkan saat bookmark atau folder berubah. Catatan: Saat ini, hanya perubahan judul dan URL yang memicu hal ini.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(id: string, changeInfo: object) => void
-
id
string
-
changeInfo
objek
-
judul
string
-
url
string opsional
-
-
onChildrenReordered
browser.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Diaktifkan saat turunan folder telah berubah urutannya karena urutan diurutkan di UI. Ini tidak dipanggil sebagai hasil dari move().
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(id: string, reorderInfo: object) => void
-
id
string
-
reorderInfo
objek
-
childIds
string[]
-
-
onCreated
browser.bookmarks.onCreated.addListener(
callback: function,
)
Diaktifkan saat bookmark atau folder dibuat.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(id: string, bookmark: BookmarkTreeNode) => void
-
id
string
-
bookmark
-
onImportBegan
browser.bookmarks.onImportBegan.addListener(
callback: function,
)
Diaktifkan saat sesi impor bookmark dimulai. Observer yang mahal harus mengabaikan update onCreated hingga onImportEnded diaktifkan. Observer tetap harus segera menangani notifikasi lainnya.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:() => void
onImportEnded
browser.bookmarks.onImportEnded.addListener(
callback: function,
)
Diaktifkan saat sesi impor bookmark berakhir.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:() => void
onMoved
browser.bookmarks.onMoved.addListener(
callback: function,
)
Diaktifkan saat bookmark atau folder dipindahkan ke folder induk yang berbeda.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(id: string, moveInfo: object) => void
-
id
string
-
moveInfo
objek
-
indeks
angka
-
oldIndex
angka
-
oldParentId
string
-
parentId
string
-
-
onRemoved
browser.bookmarks.onRemoved.addListener(
callback: function,
)
Diaktifkan saat bookmark atau folder dihapus. Jika folder dihapus secara rekursif, satu notifikasi akan diaktifkan untuk folder tersebut, dan tidak ada notifikasi untuk kontennya.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(id: string, removeInfo: object) => void
-
id
string
-
removeInfo
objek
-
indeks
angka
-
nodeChrome 48+ browser.* sejak Chrome 148
-
parentId
string
-
-