chrome.bookmarks

説明

chrome.bookmarks API を使用すると、ブックマークの作成、整理、その他の操作ができます。カスタムのブックマーク マネージャー ページを作成できるオーバーライド ページもご覧ください。

スターアイコンをクリックするとブックマークが追加されます
スターアイコンをクリックするとブックマークが追加されます。

権限

bookmarks

bookmarks API を使用するには、拡張機能マニフェストで「bookmarks」権限を宣言する必要があります。次に例を示します。

{
  "name": "My extension",
  ...
  "permissions": [
    "bookmarks"
  ],
  ...
}

コンセプトと使用方法

オブジェクトとプロパティ

ブックマークはツリー形式で整理されます。ツリーの各ノードは、ブックマークまたはフォルダ(グループ)です。ツリーの各ノードは bookmarks.BookmarkTreeNode オブジェクトで表されます。

BookmarkTreeNode プロパティは chrome.bookmarks API 全体で使用されます。たとえば、bookmarks.create を呼び出すときに、新しいノードの親(parentId)と、必要に応じてノードの indextitleurl プロパティを渡します。ノードに設定できるプロパティについては、bookmarks.BookmarkTreeNode をご覧ください。

次のコードは、「拡張機能のブックマーク」というタイトルのフォルダを作成します。create() の最初の引数には、新しいフォルダのプロパティを指定します。2 番目の引数には、フォルダの作成後に実行される関数を定義します。

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 を試すには、chrome-extension-samples リポジトリから Bookmarks API の例をインストールします。

BookmarkTreeNode

ブックマーク ツリー内のノード(ブックマークまたはフォルダ)。子ノードは親フォルダ内で順序付けられます。

プロパティ

  • 子供

    BookmarkTreeNode[] 省略可

    このノードの子ノードの順序付きリスト。

  • dateAdded

    number(省略可)

    このノードが作成された日時(エポックからのミリ秒数)(new Date(dateAdded))。

  • dateGroupModified

    number(省略可)

    このフォルダのコンテンツが最後に変更された時刻(エポックからのミリ秒数)。

  • dateLastUsed

    number(省略可)

    Chrome 114 以降

    このノードが最後に開かれた時刻(エポックからのミリ秒数)。フォルダには設定されません。

  • id

    文字列

    ノードの一意の識別子。ID は現在のプロファイル内で一意であり、ブラウザの再起動後も有効です。

  • index

    number(省略可)

    親フォルダ内のこのノードの 0 ベースの位置。

  • parentId

    文字列(省略可)

    親フォルダの id。ルートノードの場合は省略されます。

  • title

    文字列

    ノードに表示されるテキスト。

  • 変更不可

    「managed」
     省略可

    このノードが変更不可である理由を示します。managed 値は、このノードがシステム管理者または管理対象ユーザーの管理者によって構成されたことを示します。ノードがユーザーと拡張機能によって変更可能な場合は省略されます(デフォルト)。

  • URL

    文字列(省略可)

    ユーザーがブックマークをクリックしたときに移動する URL。フォルダの場合は省略されます。

BookmarkTreeNodeUnmodifiable

Chrome 44 以降

このノードが変更不可である理由を示します。managed 値は、このノードがシステム管理者によって構成されたことを示します。ノードがユーザーと拡張機能によって変更可能な場合は省略されます(デフォルト)。

「管理対象」

CreateDetails

create() 関数に渡されるオブジェクト。

プロパティ

  • index

    number(省略可)

  • parentId

    文字列(省略可)

    デフォルトは [その他のブックマーク] フォルダです。

  • title

    文字列(省略可)

  • URL

    文字列(省略可)

プロパティ

MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

非推奨

ブックマークの書き込みオペレーションが Chrome によって制限されなくなりました。

1000000

MAX_WRITE_OPERATIONS_PER_HOUR

非推奨

ブックマークの書き込みオペレーションが Chrome によって制限されなくなりました。

1000000

メソッド

create()

Promise
chrome.bookmarks.create(
  bookmark: CreateDetails,
  callback?: function,
)

指定した parentId の下にブックマークまたはフォルダを作成します。url が NULL の場合や指定されていない場合は、フォルダになります。

パラメータ

戻り値

  • Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

get()

Promise
chrome.bookmarks.get(
  idOrIdList: string | [string, ...string[]],
  callback?: function,
)

指定された BookmarkTreeNode を取得します。

パラメータ

  • idOrIdList

    string | [string, ...string[]]

    単一の文字列値 ID、または文字列値 ID の配列

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[]) => void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getChildren()

Promise
chrome.bookmarks.getChildren(
  id: string,
  callback?: function,
)

指定された BookmarkTreeNode ID の子ノードを取得します。

パラメータ

  • id

    文字列

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[]) => void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getRecent()

Promise
chrome.bookmarks.getRecent(
  numberOfItems: number,
  callback?: function,
)

最近追加したブックマークを取得します。

パラメータ

  • numberOfItems

    数値

    返す最大アイテム数。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[]) => void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getSubTree()

Promise
chrome.bookmarks.getSubTree(
  id: string,
  callback?: function,
)

指定したノードからブックマーク階層の一部を取得します。

パラメータ

  • id

    文字列

    取得するサブツリーのルートの ID。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[]) => void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getTree()

Promise
chrome.bookmarks.getTree(
  callback?: function,
)

ブックマークの階層全体を取得します。

パラメータ

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

move()

Promise
chrome.bookmarks.move(
  id: string,
  destination: object,
  callback?: function,
)

指定された BookmarkTreeNode を指定された場所に移動します。

パラメータ

  • id

    文字列

  • destination

    オブジェクト

    • index

      number(省略可)

    • parentId

      文字列(省略可)

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (result: BookmarkTreeNode) => void

戻り値

  • Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

remove()

Promise
chrome.bookmarks.remove(
  id: string,
  callback?: function,
)

ブックマークまたは空のブックマーク フォルダを削除します。

パラメータ

  • id

    文字列

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

removeTree()

Promise
chrome.bookmarks.removeTree(
  id: string,
  callback?: function,
)

ブックマーク フォルダを再帰的に削除します。

パラメータ

  • id

    文字列

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

Promise
chrome.bookmarks.search(
  query: string | object,
  callback?: function,
)

指定されたクエリに一致する BookmarkTreeNode を検索します。オブジェクトで指定されたクエリは、指定されたすべてのプロパティに一致する BookmarkTreeNode を生成します。

パラメータ

  • クエリ

    string | object

    ブックマークの URL とタイトルと照合される単語と引用符付きのフレーズを含む文字列、またはオブジェクト。オブジェクトの場合は、queryurltitle のプロパティを指定できます。指定されたすべてのプロパティに一致するブックマークが生成されます。

    • クエリ

      文字列(省略可)

      ブックマークの URL とタイトルと照合される単語と引用符付きのフレーズを組み合わせた文字列。

    • title

      文字列(省略可)

      ブックマークのタイトル。完全一致。

    • URL

      文字列(省略可)

      ブックマークの URL。文字列が完全に一致します。フォルダには URL がありません。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[]) => void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

update()

Promise
chrome.bookmarks.update(
  id: string,
  changes: object,
  callback?: function,
)

ブックマークまたはフォルダのプロパティを更新します。変更するプロパティのみを指定します。指定されていないプロパティは変更されません。注: 現在、サポートされているのは「title」と「url」のみです。

パラメータ

  • id

    文字列

  • 変更

    オブジェクト

    • title

      文字列(省略可)

    • URL

      文字列(省略可)

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (result: BookmarkTreeNode) => void

戻り値

  • Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

イベント

onChanged

chrome.bookmarks.onChanged.addListener(
  callback: function,
)

ブックマークまたはフォルダが変更されたときにトリガーされます。注: 現在、タイトルと URL の変更のみがトリガーされます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (id: string, changeInfo: object) => void

    • id

      文字列

    • changeInfo

      オブジェクト

      • title

        文字列

      • URL

        文字列(省略可)

onChildrenReordered

chrome.bookmarks.onChildrenReordered.addListener(
  callback: function,
)

UI で並べ替えられたためにフォルダの子の順序が変更されたときにトリガーされます。これは move() の結果として呼び出されません。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (id: string, reorderInfo: object) => void

    • id

      文字列

    • reorderInfo

      オブジェクト

      • childIds

        string[]

onCreated

chrome.bookmarks.onCreated.addListener(
  callback: function,
)

ブックマークまたはフォルダが作成されたときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (id: string, bookmark: BookmarkTreeNode) => void

onImportBegan

chrome.bookmarks.onImportBegan.addListener(
  callback: function,
)

ブックマークのインポート セッションが開始されると呼び出されます。コストの高いオブザーバーは、onImportEnded がトリガーされるまで onCreated の更新を無視する必要があります。オブザーバーは、他の通知は引き続き直ちに処理する必要があります。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    () => void

onImportEnded

chrome.bookmarks.onImportEnded.addListener(
  callback: function,
)

ブックマークのインポート セッションが終了したときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    () => void

onMoved

chrome.bookmarks.onMoved.addListener(
  callback: function,
)

ブックマークまたはフォルダが別の親フォルダに移動されたときにトリガーされます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (id: string, moveInfo: object) => void

    • id

      文字列

    • moveInfo

      オブジェクト

      • index

        数値

      • oldIndex

        数値

      • oldParentId

        文字列

      • parentId

        文字列

onRemoved

chrome.bookmarks.onRemoved.addListener(
  callback: function,
)

ブックマークまたはフォルダが削除されたときにトリガーされます。フォルダが再帰的に削除されると、フォルダに対して 1 つの通知がトリガーされ、その内容に対しては通知はトリガーされません。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (id: string, removeInfo: object) => void

    • id

      文字列

    • removeInfo

      オブジェクト