Spec-Zone.ru › Web Extensions

bookmarks.search()

Функция bookmarks.search() ищет узлы дерева закладок, соответствующие заданному запросу.

Эта функция вызывает исключение, если какие-либо входные параметры некорректны или не имеют соответствующего типа; см. сообщение об ошибке в консоли. Исключения не имеют идентификаторов ошибок, и сами сообщения могут изменяться, поэтому не пишите код, пытающийся их интерпретировать.

Это асинхронная функция, которая возвращает Promise.

Синтаксис

let searching = browser.bookmarks.search(
  query                  // string or object
)

Параметры

query

A string или object описывающий запрос для выполнения.

Если query является строкой, она состоит из одного или нескольких поисковых терминов, разделённых пробелами. Каждый поисковый термин соответствует, если он является подстрокой в URL или заголовке закладки. Сопоставление нечувствительно к регистру. Для того, чтобы закладка соответствовала запросу, все поисковые термины запроса должны быть сопоставлены.

Если query является объектом, он состоит из одного или нескольких из 3 свойств: query, title, и url, которые описаны ниже. Для того, чтобы закладка соответствовала запросу, все термины свойств должны быть сопоставлены.

query Необязательно

A string задающий один или несколько терминов для сопоставления; формат идентичен строковой форме параметра query. Если это не строка, выбрасывается исключение.

url Необязательно

A string, который должен точно соответствовать URL закладки. Сопоставление нечувствительно к регистру, и завершающие слэши игнорируются.

Если вы передаёте недопустимый URL, функция выбросит исключение.

title Необязательно

A string который должен точно соответствовать заголовку узла дерева закладок. Сопоставление чувствительно к регистру.

Возвращаемое значение

A Promise, который будет выполнен с массивом объектов bookmarks.BookmarkTreeNode, каждый из которых представляет собой отдельный соответствующий узел дерева закладок. Результаты возвращаются в порядке, в котором узлы были созданы. Массив пустой, если результаты не найдены.

Объект BookmarkTreeNodes — даже узлы типа "folder" — возвращаемые bookmarks.search(), отсутствует свойство children. Чтобы получить полный BookmarkTreeNode, используйте bookmarks.getSubTree().

Пример

В этом примере выводятся идентификаторы всех закладок:

function onFulfilled(bookmarkItems) {
  for (const item of bookmarkItems) {
    console.log(item.id);
  }
}

function onRejected(error) {
  console.log(`An error: ${error}`);
}

browser.bookmarks.search({}).then(onFulfilled, onRejected);

В этом примере проверяется, заложена ли текущая активная вкладка:

function onFulfilled(bookmarkItems) {
  if (bookmarkItems.length) {
    console.log("active tab is bookmarked");
  } else {
    console.log("active tab is not bookmarked");
  }
}

function onRejected(error) {
  console.log(`An error: ${error}`);
}

function checkActiveTab(tab) {
  browser.bookmarks.search({ url: tab.url }).then(onFulfilled, onRejected);
}

browser.browserAction.onClicked.addListener(checkActiveTab);

Примеры расширений

  • bookmark-it

Совместимость с браузерами

Рабочий стол Мобильные
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
search Да 79 47 ? Да Нет ? ? Нет ? Нет ?

Примечание: Этот API основан на API chrome.bookmarks Chromium. Данное руководство получено из bookmarks.json кода Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks/search

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API