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

Разрешения
bookmarksДля использования API закладок необходимо указать разрешение "закладки" в манифесте расширения . Например:
{
"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, установите пример Bookmarks API из репозитория chrome-extension-samples .
Типы
BookmarkTreeNode
Узел (закладка или папка) в дереве закладок. Дочерние узлы упорядочены внутри родительской папки.
Характеристики
- дети
BookmarkTreeNode [] optional
Упорядоченный список дочерних элементов этого узла.
- дата добавления
число необязательно
Дата создания этого узла, в миллисекундах с начала эпохи (
new Date(dateAdded)). - dateGroupModified
число необязательно
Время последнего изменения содержимого этой папки, в миллисекундах с начала эпохи.
- датаПоследнегоИспользования
число необязательно
Chrome 114+Время последнего открытия этого узла, в миллисекундах с начала эпохи. Для папок не задано.
- folderType
FolderType ( необязательно)
Chrome 134+Если указана папка, она добавляется браузером и не может быть изменена пользователем или расширением. Дочерние узлы могут быть изменены, если для данного узла не задано свойство
unmodifiable. Если узел может быть изменен пользователем и расширением (по умолчанию), этот параметр опущен.Каждый тип папки может содержать ноль, один или несколько узлов. Папку можно добавить или удалить через браузер, но не через API расширений.
- идентификатор
нить
Уникальный идентификатор узла. Идентификаторы уникальны в рамках текущего профиля и остаются действительными даже после перезапуска браузера.
- индекс
число необязательно
Позиция этого узла в родительской папке (начиная с 0).
- parentId
строка необязательный
idродительской папки. Для корневого узла этот параметр опущен. - синхронизация
логический
Chrome 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
ROOT_NODE_ID
id , связанный с корневым узлом.
Ценить
"0"
Методы
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
Создает закладку или папку под указанным parentId. Если url равен NULL или отсутствует, это будет папка.
Параметры
- закладка
Возвраты
Promise< BookmarkTreeNode >
Chrome 90+
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
Извлекает указанный(е) узел(ы) дерева закладок (BookmarkTreeNode).
Параметры
- idOrIdList
строка | [строка, ...строка[]]
Один строковый идентификатор или массив строковых идентификаторов
Возвраты
Promise< BookmarkTreeNode []>
Chrome 90+
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
Извлекает дочерние элементы указанного идентификатора BookmarkTreeNode.
Параметры
- идентификатор
нить
Возвраты
Promise< BookmarkTreeNode []>
Chrome 90+
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
Получает недавно добавленные закладки.
Параметры
- количество предметов
число
Максимальное количество товаров, подлежащих возврату.
Возвраты
Promise< BookmarkTreeNode []>
Chrome 90+
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
Извлекает часть иерархии закладок, начиная с указанного узла.
Параметры
- идентификатор
нить
Идентификатор корня поддерева, которое необходимо извлечь.
Возвраты
Promise< BookmarkTreeNode []>
Chrome 90+
Возвраты
Promise< BookmarkTreeNode []>
Chrome 90+
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
Перемещает указанный BookmarkTreeNode в заданное местоположение.
Параметры
- идентификатор
нить
- место назначения
объект
- индекс
число необязательно
- parentId
строка необязательный
Возвраты
Promise< BookmarkTreeNode >
Chrome 90+
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
Удаляет закладку или пустую папку закладок.
Параметры
- идентификатор
нить
Возвраты
Обещание<пустота>
Chrome 90+
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
Рекурсивно удаляет папку закладок.
Параметры
- идентификатор
нить
Возвраты
Обещание<пустота>
Chrome 90+
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
Выполняет поиск объектов BookmarkTreeNodes, соответствующих заданному запросу. Запросы, заданные с помощью объекта, создают объекты BookmarkTreeNodes, соответствующие всем указанным свойствам.
Параметры
- запрос
строка | объект
Это может быть либо строка слов и цитируемых фраз, которые сопоставляются с URL-адресами и заголовками закладок, либо объект. Если это объект, можно указать свойства
query,urlиtitle, и будут созданы закладки, соответствующие всем указанным свойствам.- запрос
строка необязательный
Последовательность слов и цитируемых фраз, сопоставленных с URL-адресами и заголовками закладок.
- заголовок
строка необязательный
Название закладки совпадает дословно.
- url
строка необязательный
URL закладки совпадает дословно. Обратите внимание, что у папок нет URL.
Возвраты
Promise< BookmarkTreeNode []>
Chrome 90+
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
Обновляет свойства закладки или папки. Укажите только те свойства, которые хотите изменить; неуказанные свойства останутся без изменений. Примечание: В настоящее время поддерживаются только поля 'title' и 'url'.
Параметры
- идентификатор
нить
- изменения
объект
- заголовок
строка необязательный
- url
строка необязательный
Возвраты
Promise< BookmarkTreeNode >
Chrome 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
- идентификатор
нить
- удалитьИнформацию
объект
- индекс
число
- узелChrome 48+
- parentId
нить