refresh date: 2026-09-25 robots: noindex
Это разрешение вызывает предупреждение.
Описание
Используйте chrome.bookmarks API, чтобы создавать, упорядочивать и иным образом управлять закладками. Также ознакомьтесь с информацией о переопределении страниц, которое можно использовать для создания собственной страницы менеджера закладок.
Разрешения
bookmarks
Манифест
Чтобы использовать API закладок, необходимо объявить разрешение bookmarks в манифесте расширения. Пример:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
Объекты и свойства
Закладки организованы в виде дерева, где каждый узел является либо закладкой, либо папкой (иногда называемой группой). Каждый узел в дереве представлен объектом bookmarks.BookmarkTreeNode.
Свойства BookmarkTreeNode используются во всем API chrome.bookmarks. Например, при вызове bookmarks.create вы передаете родительский элемент нового узла (parentId) и, при необходимости, свойства index, title и url узла. Информацию о свойствах узла можно найти в разделе bookmarks.BookmarkTreeNode.
Примеры
Следующий код создает папку с названием "Extension bookmarks". Первый аргумент 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[] необязательный
Упорядоченный список дочерних элементов этого узла.
-
dateAdded
number (необязательно)
Время создания узла в миллисекундах с начала отсчета (
new Date(dateAdded)). -
dateGroupModified
number (необязательно)
Время последнего изменения содержимого папки в миллисекундах с начала эпохи.
-
dateLastUsed
number (необязательно)
Chrome 114 и более поздних версий.Время последнего открытия узла в миллисекундах с начала эпохи. Не задано для папок.
-
folderType
FolderType необязательный
Chrome 134+Если она есть, то добавлена браузером и не может быть изменена пользователем или расширением. Дочерние узлы можно изменять, если для этого узла не задано свойство
unmodifiable. Опускается, если узел может быть изменен пользователем и расширением (по умолчанию).Узлов каждого типа папки может быть несколько, один или ни одного. Папку можно добавить или удалить в браузере, но не через API расширений.
-
id
string
Уникальный идентификатор узла. Идентификаторы уникальны в пределах текущего профиля и остаются действительными даже после перезапуска браузера.
-
индекс
number (необязательно)
Позиция этого узла в родительской папке (начиная с нуля).
-
parentId
Строка (необязательно)
idродительской папки. Для корневого узла не указывается. -
синхронизация
Логическое значение
Chrome 134+Синхронизируется ли этот узел с удаленным хранилищем аккаунта пользователя в браузере. Это позволяет различать аккаунт и локальные версии одного и того же объекта
FolderType. Значение этого свойства может меняться для существующего узла, например в результате действий пользователя.Примечание. Это значение отражает, сохранен ли узел во встроенном поставщике аккаунтов браузера. Узел может быть синхронизирован через сторонний сервис, даже если это значение равно false.
Для управляемых узлов (узлов, где для свойства
unmodifiableзадано значениеtrue) это свойство всегда будет иметь значениеfalse. -
название
string
Текст, который показывается для узла.
-
неизменяемый
"managed"
необязательноУказывает причину, по которой этот узел нельзя изменить. Значение
managedуказывает, что этот узел был настроен системным администратором или родителем контролируемого пользователя. Опускается, если узел может быть изменен пользователем и расширением (по умолчанию). -
url
Строка (необязательно)
URL, на который переходит пользователь, когда нажимает на закладку. Для папок не указывается.
BookmarkTreeNodeUnmodifiable
Указывает причину, по которой этот узел нельзя изменить. Значение managed указывает, что этот узел был настроен системным администратором. Опускается, если узел может быть изменен пользователем и расширением (по умолчанию).
Значение
"managed"
CreateDetails
Объект, переданный функции create().
Свойства
-
индекс
number (необязательно)
-
parentId
Строка (необязательно)
По умолчанию это папка "Другие закладки".
-
название
Строка (необязательно)
-
url
Строка (необязательно)
FolderType
Указывает тип папки.
Перечисление
"bookmarks-bar"
Папка, содержимое которой показывается в верхней части окна браузера.
"other"
Закладки, которые показываются в полном списке закладок на всех платформах.
"mobile"
закладки, доступные на мобильных устройствах пользователя, но которые можно изменить с помощью расширения или в диспетчере закладок.
"managed"
Папка верхнего уровня, которая может присутствовать, если системный администратор или законный представитель контролируемого профиля настроил закладки.
Свойства
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Операции записи закладок больше не ограничены Chrome.
Значение
1 000 000
MAX_WRITE_OPERATIONS_PER_HOUR
Операции записи закладок больше не ограничены Chrome.
Значение
1 000 000
ROOT_NODE_ID
id, связанный с узлом корневого уровня.
Значение
"0"
Методы
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
): Promise<BookmarkTreeNode>
Создает закладку или папку с указанным идентификатором parentId. Если URL имеет значение NULL или отсутствует, будет создана папка.
Параметры
-
закладка
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(result: BookmarkTreeNode) => void
-
Результат
-
Возвраты
-
Promise<BookmarkTreeNode>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
): Promise<BookmarkTreeNode[]>
Получает указанные объекты BookmarkTreeNode.
Параметры
-
idOrIdList
string | [string, ...string[]]
Один идентификатор в виде строки или массив идентификаторов в виде строк.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(results: BookmarkTreeNode[]) => void
-
результаты
-
Возвраты
-
Promise<BookmarkTreeNode[]>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
Возвращает дочерние элементы указанного BookmarkTreeNode id.
Параметры
-
id
string
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(results: BookmarkTreeNode[]) => void
-
результаты
-
Возвраты
-
Promise<BookmarkTreeNode[]>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
): Promise<BookmarkTreeNode[]>
Получает недавно добавленные закладки.
Параметры
-
numberOfItems
число
Максимальное количество возвращаемых объектов.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(results: BookmarkTreeNode[]) => void
-
результаты
-
Возвраты
-
Promise<BookmarkTreeNode[]>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
Извлекает часть иерархии закладок, начиная с указанного узла.
Параметры
-
id
string
Идентификатор корня поддерева, которое нужно получить.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(results: BookmarkTreeNode[]) => void
-
результаты
-
Возвраты
-
Promise<BookmarkTreeNode[]>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
getTree()
chrome.bookmarks.getTree(
callback?: function,
): Promise<BookmarkTreeNode[]>
Извлекает всю иерархию закладок.
Параметры
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(results: BookmarkTreeNode[]) => void
-
результаты
-
Возвраты
-
Promise<BookmarkTreeNode[]>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
): Promise<BookmarkTreeNode>
Перемещает указанный узел BookmarkTreeNode в заданное местоположение.
Параметры
-
id
string
-
целевой аккаунт
Объект
-
индекс
number (необязательно)
-
parentId
Строка (необязательно)
-
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(result: BookmarkTreeNode) => void
-
Результат
-
Возвраты
-
Promise<BookmarkTreeNode>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
): Promise<void>
Удаляет закладку или пустую папку закладок.
Параметры
-
id
string
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
): Promise<void>
Рекурсивно удаляет папку закладок.
Параметры
-
id
string
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
): Promise<BookmarkTreeNode[]>
Поиск объектов BookmarkTreeNode, соответствующих заданному запросу. Запросы, указанные с объектом, создают BookmarkTreeNodes, соответствующие всем указанным свойствам.
Параметры
-
запрос
string | object
Строка со словами и фразами в кавычках, которые сопоставляются с URL и названиями закладок, или объект. Если это объект, можно указать свойства
query,urlиtitle, и будут созданы закладки, соответствующие всем указанным свойствам.-
запрос
Строка (необязательно)
Строка со словами и фразами в кавычках, которые сопоставляются с URL и названиями закладок.
-
название
Строка (необязательно)
Название закладки. Поиск выполняется по точному совпадению.
-
url
Строка (необязательно)
URL закладки. Совпадение должно быть точным. Обратите внимание, что у папок нет URL.
-
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(results: BookmarkTreeNode[]) => void
-
результаты
-
Возвраты
-
Promise<BookmarkTreeNode[]>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
): Promise<BookmarkTreeNode>
Обновляет свойства закладки или папки. Укажите только те свойства, которые вы хотите изменить. Неуказанные свойства останутся без изменений. Примечание. В настоящее время поддерживаются только title и url.
Параметры
-
id
string
-
Изменения
Объект
-
название
Строка (необязательно)
-
url
Строка (необязательно)
-
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(result: BookmarkTreeNode) => void
-
Результат
-
Возвраты
-
Promise<BookmarkTreeNode>
Chrome 90 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
События
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
Срабатывает при изменении закладки или папки. Примечание. В настоящее время это происходит только при изменении заголовка и URL.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string, changeInfo: object) => void
-
id
string
-
changeInfo
Объект
-
название
string
-
url
Строка (необязательно)
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Срабатывает, когда дочерние элементы папки меняют свой порядок из-за сортировки в пользовательском интерфейсе. Этот метод не вызывается в результате move().
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string, reorderInfo: object) => void
-
id
string
-
reorderInfo
Объект
-
childIds
string[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
Срабатывает при создании закладки или папки.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string, bookmark: BookmarkTreeNode) => void
-
id
string
-
закладка
-
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
Срабатывает, когда начинается сеанс импорта закладок. Ресурсоемкие наблюдатели должны игнорировать обновления onCreated, пока не будет запущено onImportEnded. Наблюдатели должны немедленно реагировать на другие уведомления.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
Срабатывает, когда сеанс импорта закладок завершен.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
Срабатывает, когда закладка или папка перемещается в другую родительскую папку.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string, moveInfo: object) => void
-
id
string
-
moveInfo
Объект
-
индекс
число
-
oldIndex
число
-
oldParentId
string
-
parentId
string
-
-
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
Срабатывает, когда закладка или папка удаляется. При рекурсивном удалении папки уведомление отправляется только для нее, а не для ее содержимого.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string, removeInfo: object) => void
-
id
string
-
removeInfo
Объект
-
индекс
число
-
узелChrome 48 и более поздних версий;
-
parentId
string
-
-