説明
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[] 省略可
このノードの子の順序付きリスト。
- dateAdded
number 省略可
このノードが作成された日時(エポックからのミリ秒数(
new Date(dateAdded)
))。 - dateGroupModified
number 省略可
このフォルダのコンテンツが最後に変更された時刻(エポックからのミリ秒単位の経過時間)。
- dateLastUsed
number 省略可
Chrome 114 以降このノードが最後に開かれた日時(エポックからのミリ秒単位)。フォルダには設定されていません。
- folderType
FolderType 省略可
Chrome 134 以降存在する場合、これはブラウザによって追加されたフォルダであり、ユーザーや拡張機能が変更することはできません。このノードに
unmodifiable
プロパティが設定されていない場合、子ノードは変更される可能性があります。ノードをユーザーと拡張機能が変更できる場合は省略されます(デフォルト)。各フォルダタイプのノードは 0 個、1 個、または複数個存在することがあります。フォルダはブラウザによって追加または削除されることがありますが、拡張機能 API を介して追加または削除されることはありません。
- id
文字列
ノードの一意の識別子。ID は現在のプロファイル内で一意であり、ブラウザを再起動した後も有効です。
- index
number 省略可
親フォルダ内でのこのノードの 0 ベースの位置。
- parentId
文字列 省略可
親フォルダの
id
。ルートノードの場合は省略されます。 - 同期
ブール値
Chrome 134 以降このノードがブラウザによってユーザーのリモート アカウント ストレージと同期されているかどうか。これは、同じ
FolderType
のアカウント バージョンとローカル バージョンを区別するために使用できます。このプロパティの値は、既存のノードで変更されることがあります(ユーザー操作の結果など)。注: これは、ノードがブラウザの組み込みアカウント プロバイダに保存されているかどうかを反映します。この値が false であっても、ノードがサードパーティ経由で同期される可能性があります。
管理対象ノード(
unmodifiable
がtrue
に設定されているノード)の場合、このプロパティは常にfalse
になります。 - title
文字列
ノードに表示されるテキスト。
- 変更不可
"managed"
省略可このノードを変更できない理由を示します。
managed
値は、このノードがシステム管理者または管理対象ユーザーの管理者のいずれかによって構成されたことを示します。ノードをユーザーと拡張機能が変更できる場合は省略されます(デフォルト)。 - URL
文字列 省略可
ユーザーがブックマークをクリックしたときに移動する URL。フォルダの場合は省略されます。
BookmarkTreeNodeUnmodifiable
このノードを変更できない理由を示します。値 managed
は、このノードがシステム管理者によって構成されたことを示します。ノードをユーザーと拡張機能が変更できる場合は省略されます(デフォルト)。
値
"managed"
CreateDetails
create() 関数に渡されるオブジェクト。
プロパティ
- index
number 省略可
- 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 を取得します。
パラメータ
- idOrIdList
string | [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
オブジェクト
- index
number 省略可
- 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
オブジェクト
- childIds
string[]
-
-
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
文字列
-
-