Opis
Użyj interfejsu chrome.bookmarks API, aby tworzyć, porządkować i w inny sposób manipulować zakładkami. Zobacz też strony zastępowania, których możesz użyć do utworzenia niestandardowej strony menedżera zakładek.
Uprawnienia
bookmarksAby korzystać z interfejsu Bookmarks API, musisz zadeklarować uprawnienie „bookmarks” w pliku manifestu rozszerzenia. Na przykład:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
Pojęcia i zastosowanie
Obiekty i właściwości
Zakładki są uporządkowane w drzewie, w którym każdy węzeł jest zakładką lub folderem (czasami nazywanym grupą). Każdy węzeł w drzewie jest reprezentowany przez obiekt bookmarks.BookmarkTreeNode.
Właściwości BookmarkTreeNode są używane w całym interfejsie chrome.bookmarks API. Na przykład, gdy wywołujesz funkcję bookmarks.create, przekazujesz element nadrzędny nowego węzła (parentId) oraz opcjonalnie właściwości index, title i url węzła. Więcej informacji o właściwościach węzła znajdziesz w sekcji bookmarks.BookmarkTreeNode.
Przykłady
Ten kod tworzy folder o nazwie „Zakładki rozszerzenia”. Pierwszy argument funkcji
create() określa właściwości nowego folderu. Drugi argument określa funkcję, która ma zostać wykonana po utworzeniu folderu.
chrome.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
Poniższy fragment kodu tworzy zakładkę wskazującą dokumentację dla deweloperów dotyczącą rozszerzeń. Ponieważ nic złego się nie stanie, jeśli utworzenie zakładki się nie powiedzie, ten kod nie definiuje funkcji wywołania zwrotnego.
chrome.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu Bookmarks API z repozytorium chrome-extension-samples.
Typy
BookmarkTreeNode
Węzeł (zakładka lub folder) w drzewie zakładek. Węzły podrzędne są uporządkowane w folderze nadrzędnym.
Właściwości
-
dzieci
BookmarkTreeNode[] opcjonalnie
Uporządkowana lista elementów podrzędnych tego węzła.
-
dateAdded
number opcjonalny
Czas utworzenia tego węzła w milisekundach od początku epoki (
new Date(dateAdded)). -
dateGroupModified
number opcjonalny
Czas ostatniej zmiany zawartości tego folderu w milisekundach od początku epoki.
-
dateLastUsed
number opcjonalny
Chrome 114 lub nowszaCzas ostatniego otwarcia tego węzła w milisekundach od początku epoki. Nie można ustawić dla folderów.
-
folderType
FolderType opcjonalny
Chrome w wersji 134 lub nowszejJeśli jest obecny, jest to folder dodany przez przeglądarkę, którego użytkownik ani rozszerzenie nie mogą modyfikować. Węzły podrzędne można modyfikować, jeśli w tym węźle nie jest ustawiona właściwość
unmodifiable. Pomijane, jeśli węzeł może być modyfikowany przez użytkownika i rozszerzenie (domyślnie).Każdy typ folderu może mieć 0, 1 lub więcej węzłów. Folder może zostać dodany lub usunięty przez przeglądarkę, ale nie za pomocą interfejsu API rozszerzeń.
-
id
ciąg znaków
Unikalny identyfikator węzła. Identyfikatory są unikalne w ramach bieżącego profilu i pozostają ważne nawet po ponownym uruchomieniu przeglądarki.
-
indeks
number opcjonalny
Pozycja tego węzła w folderze nadrzędnym (liczona od zera).
-
parentId
ciąg znaków opcjonalny
idfolderu nadrzędnego. Pomijany w przypadku węzła głównego. -
synchronizuję
Wartość logiczna
Chrome w wersji 134 lub nowszejOkreśla, czy ten węzeł jest synchronizowany z zdalnym miejscem na dane na koncie użytkownika przez przeglądarkę. Można go używać do rozróżniania wersji tego samego
FolderTypena koncie i tylko lokalnie. Wartość tej właściwości może się zmienić w przypadku istniejącego węzła, np. w wyniku działania użytkownika.Uwaga: ta wartość odzwierciedla, czy węzeł jest zapisany u wbudowanego dostawcy kont w przeglądarce. Możliwe, że węzeł jest synchronizowany przez firmę zewnętrzną, nawet jeśli ta wartość to „false”.
W przypadku węzłów zarządzanych (węzłów, w których wartość
unmodifiablejest ustawiona natrue) ta właściwość będzie zawsze mieć wartośćfalse. -
tytuł
ciąg znaków
Tekst wyświetlany w węźle.
-
nie można modyfikować,
„managed”
opcjonalnieWskazuje przyczynę, dla której tego węzła nie można modyfikować. Wartość
managedoznacza, że ten węzeł został skonfigurowany przez administratora systemu lub opiekuna nadzorowanego użytkownika. Pomijane, jeśli węzeł może być modyfikowany przez użytkownika i rozszerzenie (domyślnie). -
URL
ciąg znaków opcjonalny
Adres URL, do którego użytkownik zostanie przekierowany po kliknięciu zakładki. Pomijane w przypadku folderów.
BookmarkTreeNodeUnmodifiable
Wskazuje przyczynę, dla której tego węzła nie można modyfikować. Wartość managed oznacza, że ten węzeł został skonfigurowany przez administratora systemu. Pomijane, jeśli węzeł może być modyfikowany przez użytkownika i rozszerzenie (domyślnie).
Wartość
„managed”
CreateDetails
Obiekt przekazany do funkcji create().
Właściwości
-
indeks
number opcjonalny
-
parentId
ciąg znaków opcjonalny
Domyślnie jest to folder Inne zakładki.
-
tytuł
ciąg znaków opcjonalny
-
URL
ciąg znaków opcjonalny
FolderType
Określa typ folderu.
Typ wyliczeniowy
„bookmarks-bar”
Folder, którego zawartość jest wyświetlana u góry okna przeglądarki.
„inne”
Zakładki wyświetlane na pełnej liście zakładek na wszystkich platformach.
„mobile”
Zakładki ogólnie dostępne na urządzeniach mobilnych użytkownika, ale modyfikowane przez rozszerzenie lub w menedżerze zakładek.
„zarządzany”
Folder najwyższego poziomu, który może być obecny, jeśli administrator systemu lub opiekun nadzorowanego użytkownika skonfigurował zakładki.
Właściwości
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Operacje zapisu zakładek nie są już ograniczone przez Chrome.
Wartość
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Operacje zapisu zakładek nie są już ograniczone przez Chrome.
Wartość
1000000
ROOT_NODE_ID
Element id powiązany z węzłem na poziomie głównym.
Wartość
„0”
Metody
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
Tworzy zakładkę lub folder w ramach określonego elementu parentId. Jeśli adres URL ma wartość NULL lub nie występuje, będzie to folder.
Parametry
-
zakładka
Zwroty
-
Promise<BookmarkTreeNode>
Chrome 90 lub nowsza
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
Pobiera określone węzły BookmarkTreeNode.
Parametry
-
idOrIdList
string | [string, ...string[]]
Pojedynczy identyfikator w formie ciągu tekstowego lub tablica identyfikatorów w formie ciągów tekstowych.
Zwroty
-
Promise<BookmarkTreeNode[]>
Chrome 90 lub nowsza
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
Pobiera elementy podrzędne określonego węzła BookmarkTreeNode.
Parametry
-
id
ciąg znaków
Zwroty
-
Promise<BookmarkTreeNode[]>
Chrome 90 lub nowsza
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
Pobiera ostatnio dodane zakładki.
Parametry
-
numberOfItems
liczba
Maksymalna liczba elementów do zwrócenia.
Zwroty
-
Promise<BookmarkTreeNode[]>
Chrome 90 lub nowsza
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
Pobiera część hierarchii zakładek, zaczynając od określonego węzła.
Parametry
-
id
ciąg znaków
Identyfikator korzenia poddrzewa do pobrania.
Zwroty
-
Promise<BookmarkTreeNode[]>
Chrome 90 lub nowsza
Zwroty
-
Promise<BookmarkTreeNode[]>
Chrome 90 lub nowsza
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
Przenosi określony węzeł BookmarkTreeNode do podanej lokalizacji.
Parametry
-
id
ciąg znaków
-
usługa docelowa | konto usługi docelowej
obiekt
-
indeks
number opcjonalny
-
parentId
ciąg znaków opcjonalny
-
Zwroty
-
Promise<BookmarkTreeNode>
Chrome 90 lub nowsza
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
Usuwa zakładkę lub pusty folder zakładek.
Parametry
-
id
ciąg znaków
Zwroty
-
Promise<void>
Chrome 90 lub nowsza
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
Rekursywnie usuwa folder zakładek.
Parametry
-
id
ciąg znaków
Zwroty
-
Promise<void>
Chrome 90 lub nowsza
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
Wyszukuje węzły BookmarkTreeNode pasujące do danego zapytania. Zapytania określone za pomocą obiektu zwracają węzły BookmarkTreeNodes pasujące do wszystkich określonych właściwości.
Parametry
-
zapytanie
string | object
Ciąg słów i wyrażeń w cudzysłowie, które są dopasowywane do adresów URL i tytułów zakładek, lub obiekt. Jeśli jest to obiekt, można określić właściwości
query,urlititle, a wygenerowane zostaną zakładki pasujące do wszystkich określonych właściwości.-
zapytanie
ciąg znaków opcjonalny
Ciąg słów i wyrażeń w cudzysłowie, które są porównywane z adresami URL i tytułami zakładek.
-
tytuł
ciąg znaków opcjonalny
Tytuł zakładki, który musi być identyczny.
-
URL
ciąg znaków opcjonalny
Adres URL zakładki, który jest dopasowywany dosłownie. Pamiętaj, że foldery nie mają adresu URL.
-
Zwroty
-
Promise<BookmarkTreeNode[]>
Chrome 90 lub nowsza
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
Aktualizuje właściwości zakładki lub folderu. Określ tylko właściwości, które chcesz zmienić. Właściwości, które nie zostaną określone, pozostaną bez zmian. Uwaga: obecnie obsługiwane są tylko wartości „title” i „url”.
Parametry
-
id
ciąg znaków
-
poniższych zmian
obiekt
-
tytuł
ciąg znaków opcjonalny
-
URL
ciąg znaków opcjonalny
-
Zwroty
-
Promise<BookmarkTreeNode>
Chrome 90 lub nowsza
Wydarzenia
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
Wywoływane, gdy zmieni się zakładka lub folder. Uwaga: obecnie tylko zmiany tytułu i adresu URL powodują wywołanie tego zdarzenia.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string, changeInfo: object) => void
-
id
ciąg znaków
-
changeInfo
obiekt
-
tytuł
ciąg znaków
-
URL
ciąg znaków opcjonalny
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Wywoływane, gdy kolejność elementów podrzędnych folderu ulegnie zmianie z powodu posortowania w interfejsie. Nie jest to wywoływane w wyniku wywołania funkcji move().
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string, reorderInfo: object) => void
-
id
ciąg znaków
-
reorderInfo
obiekt
-
childIds
string[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
Uruchamiane, gdy zostanie utworzona zakładka lub folder.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string, bookmark: BookmarkTreeNode) => void
-
id
ciąg znaków
-
zakładka
-
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
Uruchamiane po rozpoczęciu sesji importowania zakładek. Obserwatorzy, którzy wymagają dużych nakładów obliczeniowych, powinni ignorować aktualizacje onCreated do momentu wywołania onImportEnded. Obserwatorzy powinni nadal natychmiast reagować na inne powiadomienia.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
Uruchamiane po zakończeniu sesji importowania zakładek.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
Wywoływane, gdy zakładka lub folder zostaną przeniesione do innego folderu nadrzędnego.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string, moveInfo: object) => void
-
id
ciąg znaków
-
moveInfo
obiekt
-
indeks
liczba
-
oldIndex
liczba
-
oldParentId
ciąg znaków
-
parentId
ciąg znaków
-
-
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
Wywoływane, gdy zakładka lub folder zostaną usunięte. Gdy folder zostanie usunięty rekursywnie, zostanie wysłane jedno powiadomienie dotyczące folderu, a nie jego zawartości.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string, removeInfo: object) => void
-
id
ciąg znaków
-
removeInfo
obiekt
-
indeks
liczba
-
węzełChrome 48 lub nowsza
-
parentId
ciąg znaków
-
-