chrome.bookmarks

Описание

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

Chrome 44+

Указывает причину, по которой данный узел не подлежит изменению. Значение managed указывает, что этот узел был настроен системным администратором. Опускается, если узел может быть изменен пользователем и расширением (по умолчанию).

Ценить

"удалось"

CreateDetails

Объект, переданный в функцию create().

Характеристики

  • индекс

    число необязательно

  • parentId

    строка необязательный

    По умолчанию используется папка «Другие закладки».

  • заголовок

    строка необязательный

  • url

    строка необязательный

FolderType

Chrome 134+

Указывает тип папки.

Перечисление

"панель закладок"
Папка, содержимое которой отображается в верхней части окна браузера.

"другой"
Закладки, которые отображаются в полном списке закладок на всех платформах.

"мобильный"
Закладки, как правило, доступны на мобильных устройствах пользователя, но могут быть изменены с помощью расширения или в менеджере закладок.

"удалось"
Папка верхнего уровня, которая может присутствовать, если системный администратор или ответственное лицо за контролируемого пользователя настроило закладки.

Характеристики

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 или отсутствует, это будет папка.

Параметры

Возвраты

get()

chrome.bookmarks.get(
  idOrIdList: string | [string, ...string[]],
)
: Promise<BookmarkTreeNode[]>

Извлекает указанный(е) узел(ы) дерева закладок (BookmarkTreeNode).

Параметры

  • idOrIdList

    строка | [строка, ...строка[]]

    Один строковый идентификатор или массив строковых идентификаторов

Возвраты

getChildren()

chrome.bookmarks.getChildren(
  id: string,
)
: Promise<BookmarkTreeNode[]>

Извлекает дочерние элементы указанного идентификатора BookmarkTreeNode.

Параметры

  • идентификатор

    нить

Возвраты

getRecent()

chrome.bookmarks.getRecent(
  numberOfItems: number,
)
: Promise<BookmarkTreeNode[]>

Получает недавно добавленные закладки.

Параметры

  • количество предметов

    число

    Максимальное количество товаров, подлежащих возврату.

Возвраты

getSubTree()

chrome.bookmarks.getSubTree(
  id: string,
)
: Promise<BookmarkTreeNode[]>

Извлекает часть иерархии закладок, начиная с указанного узла.

Параметры

  • идентификатор

    нить

    Идентификатор корня поддерева, которое необходимо извлечь.

Возвраты

getTree()

chrome.bookmarks.getTree(): Promise<BookmarkTreeNode[]>

Получает всю иерархию закладок.

Возвраты

move()

chrome.bookmarks.move(
  id: string,
  destination: object,
)
: Promise<BookmarkTreeNode>

Перемещает указанный BookmarkTreeNode в заданное местоположение.

Параметры

  • идентификатор

    нить

  • место назначения

    объект

    • индекс

      число необязательно

    • parentId

      строка необязательный

Возвраты

remove()

chrome.bookmarks.remove(
  id: string,
)
: Promise<void>

Удаляет закладку или пустую папку закладок.

Параметры

  • идентификатор

    нить

Возвраты

  • Обещание<пустота>

    Chrome 90+

removeTree()

chrome.bookmarks.removeTree(
  id: string,
)
: Promise<void>

Рекурсивно удаляет папку закладок.

Параметры

  • идентификатор

    нить

Возвраты

  • Обещание<пустота>

    Chrome 90+
chrome.bookmarks.search(
  query: string | object,
)
: Promise<BookmarkTreeNode[]>

Выполняет поиск объектов BookmarkTreeNodes, соответствующих заданному запросу. Запросы, заданные с помощью объекта, создают объекты BookmarkTreeNodes, соответствующие всем указанным свойствам.

Параметры

  • запрос

    строка | объект

    Это может быть либо строка слов и цитируемых фраз, которые сопоставляются с URL-адресами и заголовками закладок, либо объект. Если это объект, можно указать свойства query , url и title , и будут созданы закладки, соответствующие всем указанным свойствам.

    • запрос

      строка необязательный

      Последовательность слов и цитируемых фраз, сопоставленных с URL-адресами и заголовками закладок.

    • заголовок

      строка необязательный

      Название закладки совпадает дословно.

    • url

      строка необязательный

      URL закладки совпадает дословно. Обратите внимание, что у папок нет URL.

Возвраты

update()

chrome.bookmarks.update(
  id: string,
  changes: object,
)
: Promise<BookmarkTreeNode>

Обновляет свойства закладки или папки. Укажите только те свойства, которые хотите изменить; неуказанные свойства останутся без изменений. Примечание: В настоящее время поддерживаются только поля 'title' и 'url'.

Параметры

  • идентификатор

    нить

  • изменения

    объект

    • заголовок

      строка необязательный

    • url

      строка необязательный

Возвраты

События

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

    • идентификатор

      нить

    • удалитьИнформацию

      объект