説明
chrome.bookmarks API を使用して、ブックマークの作成、整理、操作を行います。オーバーライド ページもご覧ください。これを使用して、カスタムのブックマーク マネージャー ページを作成できます。
権限
bookmarksbookmarks API を使用するには、拡張機能マニフェストで「bookmarks」権限を宣言する必要があります。次に例を示します。
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
コンセプトと使用方法
オブジェクトとプロパティ
ブックマークはツリー形式で整理され、ツリー内の各ノードはブックマークまたはフォルダ(グループと呼ばれることもあります)です。ツリー内の各ノードは、bookmarks.BookmarkTreeNode オブジェクトで表されます。
BookmarkTreeNode プロパティは、browser.bookmarks API 全体で使用されます。たとえば、bookmarks.create を呼び出すと、新しいノードの親(parentId)と、必要に応じてノードの index、title、url プロパティが渡されます。ノードが持つプロパティについては、bookmarks.BookmarkTreeNode をご覧ください。
例
次のコードは、「Extension bookmarks」というタイトルのフォルダを作成します。create() の最初の引数には、新しいフォルダのプロパティを指定します。2 番目の引数は、フォルダの作成後に実行される関数を定義します。
browser.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
次のスニペットは、拡張機能のデベロッパー向けドキュメントを指すブックマークを作成します。ブックマークの作成に失敗しても問題はないため、このコードではコールバック関数を定義していません。
browser.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 以降 Chrome 148 以降の browser.*このノードが最後に開かれた時刻(エポックからのミリ秒単位)。フォルダには設定されていません。
-
folderType
FolderType 省略可
Chrome 134 以降 Chrome 148 以降の browser.*このフォルダが存在する場合、ブラウザによって追加されたフォルダであり、ユーザーや拡張機能が変更することはできません。このノードに
unmodifiableプロパティが設定されていない場合、子ノードが変更される可能性があります。ユーザーと拡張機能がノードを変更できる場合は省略されます(デフォルト)。各フォルダの種類には、0 個、1 個、または複数のノードが存在する場合があります。フォルダはブラウザによって追加または削除されることがありますが、拡張機能 API を介して追加または削除されることはありません。
-
id
文字列
ノードの固有識別子。ID は現在のプロファイル内で一意であり、ブラウザを再起動しても有効なままです。
-
index
number 省略可
親フォルダ内でのこのノードの 0 から始まる位置。
-
parentId
文字列 省略可
親フォルダの
id。ルートノードでは省略されます。 -
同期
ブール値
Chrome 134 以降 Chrome 148 以降の browser.*このノードがブラウザによってユーザーのリモート アカウントの保存容量と同期されているかどうか。これは、同じ
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 によって制限されなくなりました。
値
1,000,000
MAX_WRITE_OPERATIONS_PER_HOUR
ブックマークの書き込みオペレーションが Chrome によって制限されなくなりました。
値
1,000,000
ROOT_NODE_ID
ルートレベル ノードに関連付けられた id。
値
"0"
メソッド
create()
browser.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
指定された parentId の下にブックマークまたはフォルダを作成します。url が NULL または存在しない場合、フォルダになります。
パラメータ
-
ブックマーク
戻り値
-
Promise<BookmarkTreeNode>
Chrome 90 以降 Chrome 148 以降の browser.*
get()
browser.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
指定された BookmarkTreeNode を取得します。
パラメータ
-
idOrIdList
string | [string, ...string[]]
単一の文字列値 ID、または文字列値 ID の配列
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降 Chrome 148 以降の browser.*
getChildren()
browser.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
指定された BookmarkTreeNode ID の子を取得します。
パラメータ
-
id
文字列
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降 Chrome 148 以降の browser.*
getRecent()
browser.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
最近追加されたブックマークを取得します。
パラメータ
-
numberOfItems
数値
返す最大アイテム数。
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降 Chrome 148 以降の browser.*
getSubTree()
browser.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
指定されたノードから始まるブックマーク階層の一部を取得します。
パラメータ
-
id
文字列
取得するサブツリーのルートの ID。
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降 Chrome 148 以降の browser.*
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降 Chrome 148 以降の browser.*
move()
browser.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
指定された BookmarkTreeNode を指定された場所に移動します。
パラメータ
-
id
文字列
-
destination
オブジェクト
-
index
number 省略可
-
parentId
文字列 省略可
-
戻り値
-
Promise<BookmarkTreeNode>
Chrome 90 以降 Chrome 148 以降の browser.*
remove()
browser.bookmarks.remove(
id: string,
): Promise<void>
ブックマークまたは空のブックマーク フォルダを削除します。
パラメータ
-
id
文字列
戻り値
-
Promise<void>
Chrome 90 以降 Chrome 148 以降の browser.*
removeTree()
browser.bookmarks.removeTree(
id: string,
): Promise<void>
ブックマーク フォルダを再帰的に削除します。
パラメータ
-
id
文字列
戻り値
-
Promise<void>
Chrome 90 以降 Chrome 148 以降の browser.*
search()
browser.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
指定されたクエリに一致する BookmarkTreeNode を検索します。オブジェクトで指定されたクエリは、指定されたすべてのプロパティに一致する BookmarkTreeNodes を生成します。
パラメータ
-
クエリ
string | object
ブックマークの URL とタイトルに一致する単語と引用符で囲まれたフレーズの文字列、またはオブジェクト。オブジェクトの場合、プロパティ
query、url、titleを指定できます。指定したすべてのプロパティに一致するブックマークが生成されます。-
クエリ
文字列 省略可
ブックマークの URL とタイトルに一致する単語と引用符で囲まれたフレーズの文字列。
-
title
文字列 省略可
ブックマークのタイトル。完全に一致するものが検索されます。
-
URL
文字列 省略可
ブックマークの URL。完全に一致する必要があります。フォルダには URL がありません。
-
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降 Chrome 148 以降の browser.*
update()
browser.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
ブックマークまたはフォルダのプロパティを更新します。変更するプロパティのみを指定します。指定されていないプロパティは変更されません。注: 現在、サポートされているのは「title」と「url」のみです。
パラメータ
-
id
文字列
-
変更
オブジェクト
-
title
文字列 省略可
-
URL
文字列 省略可
-
戻り値
-
Promise<BookmarkTreeNode>
Chrome 90 以降 Chrome 148 以降の browser.*
イベント
onChanged
browser.bookmarks.onChanged.addListener(
callback: function,
)
ブックマークまたはフォルダが変更されたときに呼び出されます。注: 現在、この処理はタイトルと URL の変更によってのみトリガーされます。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(id: string, changeInfo: object) => void
-
id
文字列
-
changeInfo
オブジェクト
-
title
文字列
-
URL
文字列 省略可
-
-
onChildrenReordered
browser.bookmarks.onChildrenReordered.addListener(
callback: function,
)
UI での並べ替えにより、フォルダの子の順序が変更されたときに呼び出されます。move() の結果として呼び出されることはありません。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(id: string, reorderInfo: object) => void
-
id
文字列
-
reorderInfo
オブジェクト
-
childIds
string[]
-
-
onCreated
browser.bookmarks.onCreated.addListener(
callback: function,
)
ブックマークまたはフォルダが作成されたときに呼び出されます。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(id: string, bookmark: BookmarkTreeNode) => void
-
id
文字列
-
ブックマーク
-
onImportBegan
browser.bookmarks.onImportBegan.addListener(
callback: function,
)
ブックマークのインポート セッションが開始されたときに呼び出されます。負荷の高いオブザーバーは、onImportEnded が呼び出されるまで、onCreated の更新を無視する必要があります。オブザーバーは、他の通知には引き続き直ちに対応する必要があります。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。() => void
onImportEnded
browser.bookmarks.onImportEnded.addListener(
callback: function,
)
ブックマークのインポート セッションが終了したときに呼び出されます。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。() => void
onMoved
browser.bookmarks.onMoved.addListener(
callback: function,
)
ブックマークまたはフォルダが別の親フォルダに移動されたときに呼び出されます。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(id: string, moveInfo: object) => void
-
id
文字列
-
moveInfo
オブジェクト
-
index
数値
-
oldIndex
数値
-
oldParentId
文字列
-
parentId
文字列
-
-
onRemoved
browser.bookmarks.onRemoved.addListener(
callback: function,
)
ブックマークまたはフォルダが削除されたときに呼び出されます。フォルダが再帰的に削除されると、そのフォルダに対して 1 つの通知が送信され、その内容については通知されません。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(id: string, removeInfo: object) => void
-
id
文字列
-
removeInfo
オブジェクト
-
index
数値
-
ノードChrome 48 以降 Chrome 148 以降の browser.*
-
parentId
文字列
-
-