Описание
 Используйте 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нить