説明
chrome.bookmarks API を使用すると、ブックマークの作成、整理、その他の操作ができます。カスタムのブックマーク マネージャー ページを作成するために使用できるオーバーライド ページもご覧ください。
 
  権限
bookmarksブックマーク API を使用するには、拡張機能のマニフェストで「bookmarks」権限を宣言する必要があります。次に例を示します。
{
  "name": "My extension",
  ...
  "permissions": [
    "bookmarks"
  ],
  ...
}
コンセプトと使用方法
オブジェクトとプロパティ
ブックマークはツリー形式で整理され、ツリーの各ノードはブックマークまたはフォルダ(グループとも呼ばれます)です。ツリーの各ノードは bookmarks.BookmarkTreeNode オブジェクトで表されます。
BookmarkTreeNode プロパティは chrome.bookmarks API 全体で使用されます。たとえば、bookmarks.create を呼び出すときに、新しいノードの親(parentId)と、必要に応じてノードの index、title、url プロパティを渡します。ノードが持つことができるプロパティについては、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[] 省略可 このノードの子の順序付きリスト。 
- 
    dateAddednumber 省略可 このノードが作成された日時(エポックからのミリ秒数( new Date(dateAdded)))。
- 
    dateGroupModifiednumber 省略可 このフォルダのコンテンツが最後に変更された時刻(エポックからのミリ秒単位の経過時間)。 
- 
    dateLastUsednumber 省略可 Chrome 114 以降このノードが最後に開かれた日時(エポックからのミリ秒単位)。フォルダには設定されていません。 
- 
    folderTypeFolderType 省略可 Chrome 134 以降存在する場合、これはブラウザによって追加されたフォルダであり、ユーザーや拡張機能が変更することはできません。このノードに unmodifiableプロパティが設定されていない場合、子ノードは変更される可能性があります。ノードをユーザーと拡張機能が変更できる場合は省略されます(デフォルト)。各フォルダタイプのノードは 0 個、1 個、または複数個存在することがあります。フォルダはブラウザによって追加または削除されることがありますが、拡張機能 API を介して追加または削除されることはありません。 
- 
    id文字列 ノードの一意の識別子。ID は現在のプロファイル内で一意であり、ブラウザを再起動した後も有効です。 
- 
    indexnumber 省略可 親フォルダ内でのこのノードの 0 ベースの位置。 
- 
    parentId文字列 省略可 親フォルダの id。ルートノードの場合は省略されます。
- 
    同期ブール値 Chrome 134 以降このノードがブラウザによってユーザーのリモート アカウント ストレージと同期されているかどうか。これは、同じ FolderTypeのアカウント バージョンとローカル バージョンを区別するために使用できます。このプロパティの値は、既存のノードで変更されることがあります(ユーザー操作の結果など)。注: これは、ノードがブラウザの組み込みアカウント プロバイダに保存されているかどうかを反映します。この値が false であっても、ノードがサードパーティ経由で同期される可能性があります。 管理対象ノード( unmodifiableがtrueに設定されているノード)の場合、このプロパティは常にfalseになります。
- 
    title文字列 ノードに表示されるテキスト。 
- 
    変更不可"managed" 
 省略可このノードを変更できない理由を示します。 managed値は、このノードがシステム管理者または管理対象ユーザーの管理者のいずれかによって構成されたことを示します。ノードをユーザーと拡張機能が変更できる場合は省略されます(デフォルト)。
- 
    URL文字列 省略可 ユーザーがブックマークをクリックしたときに移動する URL。フォルダの場合は省略されます。 
BookmarkTreeNodeUnmodifiable
このノードを変更できない理由を示します。値 managed は、このノードがシステム管理者によって構成されたことを示します。ノードをユーザーと拡張機能が変更できる場合は省略されます(デフォルト)。
値
"managed" 
 
CreateDetails
create() 関数に渡されるオブジェクト。
プロパティ
- 
    indexnumber 省略可 
- 
    parentId文字列 省略可 デフォルトでは [その他のブックマーク] フォルダに保存されます。 
- 
    title文字列 省略可 
- 
    URL文字列 省略可 
FolderType
フォルダのタイプを示します。
列挙型
「bookmarks-bar」 
 ブラウザ ウィンドウの上部にコンテンツが表示されるフォルダ。
「other」 
 すべてのプラットフォームのブックマークの完全なリストに表示されるブックマーク。
"mobile" 
 ユーザーのモバイル デバイスで一般的に利用できるブックマーク。ただし、拡張機能またはブックマーク マネージャーで変更可能。
「managed」 
 システム管理者または管理対象ユーザーの管理者がブックマークを設定している場合に存在する最上位フォルダ。
プロパティ
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
ブックマークの書き込みオペレーションが Chrome によって制限されなくなりました。
値
1000000 
 
MAX_WRITE_OPERATIONS_PER_HOUR
ブックマークの書き込みオペレーションが Chrome によって制限されなくなりました。
値
1000000 
 
メソッド
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
指定された parentId の下にブックマークまたはフォルダを作成します。url が NULL または欠落している場合は、フォルダになります。
パラメータ
- 
    ブックマーク
戻り値
- 
            Promise<BookmarkTreeNode> Chrome 90 以降
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
指定された BookmarkTreeNode を取得します。
パラメータ
- 
    idOrIdListstring | [string, ...string[]] 文字列値の ID の単一値、または文字列値の ID の配列 
戻り値
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以降
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
指定された BookmarkTreeNode ID の子を取得します。
パラメータ
- 
    id文字列 
戻り値
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以降
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
最近追加されたブックマークを取得します。
パラメータ
- 
    numberOfItems数値 返す最大アイテム数。 
戻り値
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以降
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
指定されたノードから始まるブックマーク階層の一部を取得します。
パラメータ
- 
    id文字列 取得するサブツリーのルートの ID。 
戻り値
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以降
戻り値
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以降
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
指定された BookmarkTreeNode を指定された場所に移動します。
パラメータ
- 
    id文字列 
- 
    destinationオブジェクト - 
    indexnumber 省略可 
- 
    parentId文字列 省略可 
 
- 
    
戻り値
- 
            Promise<BookmarkTreeNode> Chrome 90 以降
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
ブックマークまたは空のブックマーク フォルダを削除します。
パラメータ
- 
    id文字列 
戻り値
- 
            Promise<void> Chrome 90 以降
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
ブックマーク フォルダを再帰的に削除します。
パラメータ
- 
    id文字列 
戻り値
- 
            Promise<void> Chrome 90 以降
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
指定されたクエリに一致する BookmarkTreeNode を検索します。オブジェクトで指定されたクエリは、指定されたすべてのプロパティに一致する BookmarkTreeNode を生成します。
パラメータ
- 
    クエリ文字列 | オブジェクト ブックマークの URL とタイトルと照合される単語と引用句の文字列、またはオブジェクト。オブジェクトの場合、プロパティ query、url、titleを指定できます。指定されたすべてのプロパティに一致するブックマークが生成されます。- 
    クエリ文字列 省略可 ブックマークの URL とタイトルに対して照合される単語と引用符付きのフレーズの文字列。 
- 
    title文字列 省略可 ブックマークのタイトル。完全に一致します。 
- 
    URL文字列 省略可 ブックマークの URL。完全に一致します。フォルダには URL がありません。 
 
- 
    
戻り値
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以降
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
ブックマークまたはフォルダのプロパティを更新します。変更するプロパティのみを指定します。指定されていないプロパティは変更されません。注: 現在、サポートされているのは「title」と「url」のみです。
パラメータ
- 
    id文字列 
- 
    変更オブジェクト - 
    title文字列 省略可 
- 
    URL文字列 省略可 
 
- 
    
戻り値
- 
            Promise<BookmarkTreeNode> Chrome 90 以降
イベント
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オブジェクト - 
    childIdsstring[] 
 
- 
    
 
- 
    
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
ブックマークまたはフォルダが作成されたときに発生します。
パラメータ
- 
    callback関数 callbackパラメータは次のようになります。(id: string, bookmark: BookmarkTreeNode) => void - 
    id文字列 
- 
    ブックマーク
 
- 
    
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オブジェクト - 
    index数値 
- 
    ノードChrome 48 以降
- 
    parentId文字列 
 
- 
    
 
-