Описание
Используйте 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, установите пример API закладок из репозитория chrome-extension-samples .
Типы
BookmarkTreeNode
Узел (закладка или папка) в дереве закладок. Дочерние узлы упорядочены в родительской папке.
Характеристики
- дети
BookmarkTreeNode [] необязательно
Упорядоченный список дочерних элементов этого узла.
- датаДобавлено
номер необязательно
Когда этот узел был создан, в миллисекундах с начала эпохи (
new Date(dateAdded)
). - датаГруппаИзменено
номер необязательно
Когда содержимое этой папки менялось в последний раз (в миллисекундах с начала эпохи).
- ДатаПоследнегоИспользования
номер необязательно
Хром 114+Когда этот узел был открыт в последний раз, в миллисекундах с момента начала. Не установлено для папок.
- идентификатор
нить
Уникальный идентификатор узла. Идентификаторы уникальны в рамках текущего профиля и остаются действительными даже после перезапуска браузера.
- индекс
номер необязательно
Позиция этого узла, отсчитываемая от 0, в его родительской папке.
- родительский идентификатор
строка необязательна
id
родительской папки. Опущено для корневого узла. - заголовок
нить
Текст, отображаемый для узла.
- неизменяемый
"удалось"
необязательныйУказывает причину, по которой этот узел невозможно изменить.
managed
значение указывает, что этот узел был настроен системным администратором или хранителем контролируемого пользователя. Пропускается, если узел может быть изменен пользователем и расширением (по умолчанию). - URL
строка необязательна
URL-адрес, по которому осуществляется переход, когда пользователь щелкает закладку. Опущено для папок.
BookmarkTreeNodeUnmodifiable
Указывает причину, по которой этот узел невозможно изменить. managed
значение указывает, что этот узел был настроен системным администратором. Пропущено, если узел может быть изменен пользователем и расширением (по умолчанию).
Ценить
"удалось"
CreateDetails
Объект передается функции create().
Характеристики
- индекс
номер необязательно
- родительский идентификатор
строка необязательна
По умолчанию находится в папке «Другие закладки».
- заголовок
строка необязательна
- URL
строка необязательна
Характеристики
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Операции записи закладок больше не ограничиваются Chrome.
Ценить
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Операции записи закладок больше не ограничиваются Chrome.
Ценить
1000000
Методы
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
)
Создает закладку или папку с указанным родительским идентификатором. Если URL-адрес равен NULL или отсутствует, это будет папка.
Параметры
- закладка
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: BookmarkTreeNode) => void
- результат
Возврат
Обещание <BookmarkTreeNode>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
)
Извлекает указанные BookmarkTreeNode(s).
Параметры
- idOrIdList
строка | [строка, ...строка[]]
Одиночный идентификатор со строковым значением или массив идентификаторов со строковым значением.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(results: BookmarkTreeNode[]) => void
- результаты
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
)
Получает дочерние элементы указанного идентификатора BookmarkTreeNode.
Параметры
- идентификатор
нить
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(results: BookmarkTreeNode[]) => void
- результаты
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
)
Извлекает недавно добавленные закладки.
Параметры
- количество предметов
число
Максимальное количество товаров для возврата.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(results: BookmarkTreeNode[]) => void
- результаты
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
)
Извлекает часть иерархии закладок, начиная с указанного узла.
Параметры
- идентификатор
нить
Идентификатор корня поддерева, который требуется получить.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(results: BookmarkTreeNode[]) => void
- результаты
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getTree()
chrome.bookmarks.getTree(
callback?: function,
)
Получает всю иерархию закладок.
Параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(results: BookmarkTreeNode[]) => void
- результаты
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
)
Перемещает указанный BookmarkTreeNode в указанное место.
Параметры
- идентификатор
нить
- место назначения
объект
- индекс
номер необязательно
- родительский идентификатор
строка необязательна
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: BookmarkTreeNode) => void
- результат
Возврат
Обещание <BookmarkTreeNode>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
)
Удаляет закладку или пустую папку закладок.
Параметры
- идентификатор
нить
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
)
Рекурсивно удаляет папку с закладками.
Параметры
- идентификатор
нить
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
)
Ищет BookmarkTreeNodes, соответствующий заданному запросу. Запросы, указанные с помощью объекта, создают BookmarkTreeNodes, соответствующие всем указанным свойствам.
Параметры
- запрос
строка | объект
Либо строка слов и фраз в кавычках, которые сопоставляются с URL-адресами и заголовками закладок, либо объект. Если это объект, можно указать свойства
query
,url
иtitle
и будут созданы закладки, соответствующие всем указанным свойствам.- запрос
строка необязательна
Строка слов и фраз в кавычках, которые сопоставляются с URL-адресами и заголовками закладок.
- заголовок
строка необязательна
Название закладки; совпадает дословно.
- URL
строка необязательна
URL-адрес закладки; совпадает дословно. Обратите внимание, что у папок нет URL-адреса.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(results: BookmarkTreeNode[]) => void
- результаты
Возврат
Обещание< BookmarkTreeNode []>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
)
Обновляет свойства закладки или папки. Укажите только те свойства, которые вы хотите изменить; неуказанные свойства останутся неизменными. Примечание. В настоящее время поддерживаются только «заголовок» и «url».
Параметры
- идентификатор
нить
- изменения
объект
- заголовок
строка необязательна
- URL
строка необязательна
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: BookmarkTreeNode) => void
- результат
Возврат
Обещание <BookmarkTreeNode>
Хром 90+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
События
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
Вызывается при изменении закладки или папки. Примечание. В настоящее время это происходит только при изменении заголовка и URL-адреса.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, changeInfo: object) => void
- идентификатор
нить
- изменениеИнформация
объект
- заголовок
нить
- URL
строка необязательна
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Вызывается, когда дочерние элементы папки изменили свой порядок из-за порядка сортировки в пользовательском интерфейсе. Это не вызывается в результате move().
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, reorderInfo: object) => void
- идентификатор
нить
- переупорядочитьинформацию
объект
- идентификаторы детей
нить[]
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
объект
- индекс
число
- старыйиндекс
число
- старыйродительид
нить
- родительский идентификатор
нить
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
Вызывается при удалении закладки или папки. Когда папка удаляется рекурсивно, для папки выдается одно уведомление, а для ее содержимого – ни одно.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(id: string, removeInfo: object) => void
- идентификатор
нить
- удалитьинформацию
объект
- индекс
число
- узелХром 48+
- родительский идентификатор
нить