Описание
Используйте API chrome.bookmarks
для создания, упорядочивания и других операций с закладками. См. также раздел «Переопределение страниц» , который можно использовать для создания пользовательской страницы менеджера закладок.

Разрешения
bookmarks
Для использования API закладок необходимо указать разрешение «bookmarks» в манифесте расширения . Например:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
Концепции и использование
Объекты и свойства
Закладки организованы в виде дерева, каждый узел которого представляет собой либо закладку, либо папку (иногда называемую группой ). Каждый узел дерева представлен объектом bookmarks.BookmarkTreeNode .
Свойства BookmarkTreeNode
используются во всем API chrome.bookmarks
. Например, при вызове bookmarks.create вы передаёте родительский элемент нового узла ( parentId
) и, при необходимости, свойства index
, title
и url
узла. Сведения о свойствах, которые может иметь узел, см. в описании bookmarks.BookmarkTreeNode.
Примеры
Следующий код создаёт папку с названием «Закладки расширений». Первый аргумент метода create()
задаёт свойства новой папки. Второй аргумент определяет функцию, которая будет выполнена после создания папки.
chrome.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
Следующий фрагмент кода создаёт закладку, указывающую на документацию разработчика по расширениям. Поскольку ничего страшного не произойдёт, если закладка не будет создана, этот код не определяет функцию обратного вызова.
chrome.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
Чтобы опробовать этот API, установите пример API закладок из репозитория chrome-extension-samples .
Типы
BookmarkTreeNode
Узел (закладка или папка) в дереве закладок. Дочерние узлы упорядочены внутри родительской папки.
Характеристики
- дети
BookmarkTreeNode [] необязательно
Упорядоченный список дочерних узлов этого узла.
- дата добавления
номер необязательно
Когда этот узел был создан, в миллисекундах с начала эпохи (
new Date(dateAdded)
). - dateGroupModified
номер необязательно
Когда содержимое этой папки последний раз изменилось, в миллисекундах с начала эпохи.
- датапоследнегоиспользования
номер необязательно
Хром 114+Время последнего открытия этого узла (в миллисекундах с начала эпохи). Не задано для папок.
- Тип_папки
FolderType (необязательно)
Хром 134+Если присутствует, это папка, добавленная браузером и недоступная для изменения пользователем или расширением. Дочерние узлы могут быть изменены, если для этого узла не установлено свойство
unmodifiable
. Не указывается, если узел может быть изменен пользователем и расширением (по умолчанию).Папка каждого типа может содержать ноль, один или несколько узлов. Папку можно добавить или удалить через браузер, но не через API расширений.
- идентификатор
нить
Уникальный идентификатор узла. Идентификаторы уникальны в пределах текущего профиля и остаются действительными даже после перезапуска браузера.
- индекс
номер необязательно
Положение этого узла (отсчет от 0) в родительской папке.
- parentId
строка необязательная
id
родительской папки. Не указывается для корневого узла. - синхронизация
булев
Хром 134+Синхронизируется ли этот узел с удалённым хранилищем учётной записи пользователя браузером. Это можно использовать для различения версий одного и того же
FolderType
для учётной записи и локально. Значение этого свойства может измениться для существующего узла, например, в результате действий пользователя.Примечание: это значение указывает, сохранён ли узел во встроенном поставщике учётных записей браузера. Узел может быть синхронизирован через сторонний сервис, даже если это значение равно false.
Для управляемых узлов (узлов, где
unmodifiable
имеет значениеtrue
) это свойство всегда будетfalse
. - заголовок
нить
Текст, отображаемый для узла.
- неизменяемый
"удалось"
необязательныйУказывает причину, по которой этот узел не может быть изменён. Значение
managed
указывает, что этот узел был настроен системным администратором или куратором контролируемого пользователя. Не указывается, если узел может быть изменён пользователем и расширением (по умолчанию). - URL-адрес
строка необязательная
URL-адрес, на который пользователь переходит при нажатии на закладку. Не указывается для папок.
BookmarkTreeNodeUnmodifiable
Указывает причину, по которой этот узел не может быть изменён. Значение managed
указывает, что этот узел был настроен системным администратором. Не указывается, если узел может быть изменён пользователем и расширением (по умолчанию).
Ценить
"удалось"
CreateDetails
Объект передан функции create().
Характеристики
- индекс
номер необязательно
- parentId
строка необязательная
По умолчанию это папка «Другие закладки».
- заголовок
строка необязательная
- URL-адрес
строка необязательная
FolderType
Указывает тип папки.
Перечисление
"панель закладок" "другой" "мобильный" "удалось"
Папка, содержимое которой отображается в верхней части окна браузера.
Закладки, которые отображаются в полном списке закладок на всех платформах.
Закладки, как правило, доступны на мобильных устройствах пользователя, но могут быть изменены с помощью расширения или в менеджере закладок.
Папка верхнего уровня, которая может присутствовать, если системный администратор или хранитель контролируемого пользователя настроил закладки.
Характеристики
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Операции записи закладок больше не ограничиваются Chrome.
Ценить
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Операции записи закладок больше не ограничиваются Chrome.
Ценить
1000000
Методы
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
Создаёт закладку или папку с указанным parentId. Если url равен NULL или отсутствует, это будет папка.
Параметры
- закладка
Возврат
Обещание <BookmarkTreeNode>
Хром 90+
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
Извлекает указанные BookmarkTreeNode.
Параметры
- idOrIdList
строка | [строка, ...строка[]]
Один строковый идентификатор или массив строковых идентификаторов
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
Извлекает дочерние элементы указанного идентификатора BookmarkTreeNode.
Параметры
- идентификатор
нить
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
Извлекает недавно добавленные закладки.
Параметры
- количество элементов
число
Максимальное количество возвращаемых товаров.
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
Извлекает часть иерархии закладок, начиная с указанного узла.
Параметры
- идентификатор
нить
Идентификатор корня поддерева, который требуется извлечь.
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
Перемещает указанный BookmarkTreeNode в указанное место.
Параметры
- идентификатор
нить
- место назначения
объект
- индекс
номер необязательно
- parentId
строка необязательная
Возврат
Обещание <BookmarkTreeNode>
Хром 90+
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
Удаляет закладку или пустую папку закладок.
Параметры
- идентификатор
нить
Возврат
Обещание<void>
Хром 90+
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
Рекурсивно удаляет папку с закладками.
Параметры
- идентификатор
нить
Возврат
Обещание<void>
Хром 90+
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
Поиск объектов BookmarkTreeNodes, соответствующих заданному запросу. Запросы, заданные с использованием объекта, возвращают объекты BookmarkTreeNodes, соответствующие всем указанным свойствам.
Параметры
- запрос
строка | объект
Либо строка слов и фраз в кавычках, сопоставляемых с URL-адресами и заголовками закладок, либо объект. Если это объект, можно указать свойства
query
,url
иtitle
, и будут созданы закладки, соответствующие всем указанным свойствам.- запрос
строка необязательная
Строка слов и фраз в кавычках, сопоставляемых с URL-адресами и заголовками закладок.
- заголовок
строка необязательная
Название закладки; совпадает дословно.
- URL-адрес
строка необязательная
URL-адрес закладки совпадает дословно. Обратите внимание, что у папок URL-адреса нет.
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
Обновляет свойства закладки или папки. Укажите только те свойства, которые вы хотите изменить; неуказанные свойства останутся без изменений. Примечание: в настоящее время поддерживаются только «title» и «url».
Параметры
- идентификатор
нить
- изменения
объект
- заголовок
строка необязательная
- URL-адрес
строка необязательная
Возврат
Обещание <BookmarkTreeNode>
Хром 90+
События
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
Срабатывает при изменении закладки или папки. Примечание: в настоящее время это происходит только при изменении заголовка и URL.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, changeInfo: object) => void
- идентификатор
нить
- changeInfo
объект
- заголовок
нить
- URL-адрес
строка необязательная
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Вызывается, когда порядок дочерних элементов папки изменился из-за сортировки в пользовательском интерфейсе. Это событие не вызывается в результате выполнения метода move().
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, reorderInfo: object) => void
- идентификатор
нить
- reorderInfo
объект
- childIds
нить[]
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
Срабатывает при создании закладки или папки.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, bookmark: BookmarkTreeNode) => void
- идентификатор
нить
- закладка
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
Срабатывает при начале сеанса импорта закладок. Затратные наблюдатели должны игнорировать обновления onCreated до срабатывания onImportEnded. Наблюдатели по-прежнему должны обрабатывать остальные уведомления немедленно.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
Срабатывает по завершении сеанса импорта закладок.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
Срабатывает при перемещении закладки или папки в другую родительскую папку.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, moveInfo: object) => void
- идентификатор
нить
- moveInfo
объект
- индекс
число
- старыйИндекс
число
- oldParentId
нить
- parentId
нить
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
Срабатывает при удалении закладки или папки. При рекурсивном удалении папки срабатывает одно уведомление для неё и ни одного для её содержимого.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, removeInfo: object) => void
- идентификатор
нить
- removeInfo
объект
- индекс
число
- узелХром 48+
- parentId
нить