--- title: bookmarks.search() slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/search tags: - API - Add-ons - Bookmarks - Extensions - Method - Non-standard - Reference - Search - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/search ---
{{AddonSidebar()}}

bookmarks.search() 関数は、指定したクエリにマッチするブックマークを検索するものです。マッチしたブックマークは、{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトの配列として、指定されたコールバック関数の引数に渡されます。

入力引数の値や型が不正だった場合、この関数は例外を送出します。エラーメッセージはコンソールで確認できます。送出された例外はエラー ID を含んでおらず、またメッセージを変更される可能性があるため、これらを解析するようなコードは書かないでください。

構文

browser.bookmarks.search(
  query,   // 文字列またはオブジェクト
  callback // 関数
)

引数

query
実行するクエリを表す {{jsxref("string")}} または {{jsxref("object")}} です。
query を文字列で指定する場合、query は 0 個以上の検索項から構成されます。検索項はスペースで区切りますが、複数語からなる句を検索したい場合は引用符でくくります。それぞれの検索項はブックマークの URL やタイトルの部分文字列にマッチします(大文字・小文字は区別されません)。あるブックマークがクエリにマッチするには、クエリの検索項すべてがマッチしなければなりません。

query をオブジェクトで指定する場合、以下の 3 つのプロパティのうち 0 個以上を指定することになります。あるブックマークがクエリにマッチするには、指定されたプロパティすべてにおいてマッチしなければなりません。

query{{optional_inline}}
1 つ以上の検索項を含んだ {{jsxref("string")}} を指定します。このフォーマットは query 引数における文字列のフォーマットと同じです。このプロパティ値が {{jsxref("string")}} でなかった場合、 例外が送出されます。
url{{optional_inline}}
ブックマークの URL と完全一致しなければならない {{jsxref("string")}} を指定します。マッチの際に大文字・小文字は区別されず、また末尾のスラッシュも無視されます。

無効な URL を指定した場合、例外が送出されます。

title{{optional_inline}}
ブックマークのタイトルと完全一致しなければならない {{jsxref("string")}} を指定します。マッチの際には大文字・小文字が区別されます。
callback
クエリの結果が得られた場合に呼び出される関数を指定します。この関数には以下の引数が渡ります。
results
{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトの配列であり、各要素はマッチしたブックマークをそれぞれ表しています。何も見つからなかった場合は空の配列となります。

ブラウザ実装状況

{{Compat("webextensions.api.bookmarks.search")}}

使用例

以下の例は、ブックマークすべての ID を出力するものです。

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

chrome.bookmarks.search({}, onGot);

以下の例は、その時にアクティブなタブがブックマークされているかどうかを確認するものです。

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

function checkActiveTab(tab) {
  chrome.bookmarks.search({url: tab.url}, onGot);
}

chrome.browserAction.onClicked.addListener(checkActiveTab);

{{WebExtExamples}}

謝辞

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。