説明
chrome.bookmarks
API を使用すると、ブックマークの作成、整理、その他の操作ができます。カスタムのブックマーク マネージャー ページを作成できるオーバーライド ページもご覧ください。
権限
bookmarks
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 以降このノードが最後に開かれた時刻(エポックからのミリ秒数)。フォルダには設定されません。
-
id
文字列
ノードの一意の識別子。ID は現在のプロファイル内で一意であり、ブラウザの再起動後も有効です。
-
index
number(省略可)
親フォルダ内のこのノードの 0 ベースの位置。
-
parentId
文字列(省略可)
親フォルダの
id
。ルートノードの場合は省略されます。 -
title
文字列
ノードに表示されるテキスト。
-
変更不可
「managed」
省略可このノードが変更不可である理由を示します。
managed
値は、このノードがシステム管理者または管理対象ユーザーの管理者によって構成されたことを示します。ノードがユーザーと拡張機能によって変更可能な場合は省略されます(デフォルト)。 -
URL
文字列(省略可)
ユーザーがブックマークをクリックしたときに移動する URL。フォルダの場合は省略されます。
BookmarkTreeNodeUnmodifiable
このノードが変更不可である理由を示します。managed
値は、このノードがシステム管理者によって構成されたことを示します。ノードがユーザーと拡張機能によって変更可能な場合は省略されます(デフォルト)。
値
「管理対象」
CreateDetails
create() 関数に渡されるオブジェクト。
プロパティ
-
index
number(省略可)
-
parentId
文字列(省略可)
デフォルトは [その他のブックマーク] フォルダです。
-
title
文字列(省略可)
-
URL
文字列(省略可)
プロパティ
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
ブックマークの書き込みオペレーションが Chrome によって制限されなくなりました。
値
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
ブックマークの書き込みオペレーションが Chrome によって制限されなくなりました。
値
1000000
メソッド
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
)
指定した parentId の下にブックマークまたはフォルダを作成します。url が NULL の場合や指定されていない場合は、フォルダになります。
パラメータ
-
ブックマーク
-
callback
function 省略可
callback
パラメータは次のようになります。(result: BookmarkTreeNode) => void
-
件の結果
-
戻り値
-
Promise<BookmarkTreeNode>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
get()
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()
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()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
)
最近追加したブックマークを取得します。
パラメータ
-
numberOfItems
数値
返す最大アイテム数。
-
callback
function 省略可
callback
パラメータは次のようになります。(results: BookmarkTreeNode[]) => void
-
結果
-
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
)
指定したノードからブックマーク階層の一部を取得します。
パラメータ
-
id
文字列
取得するサブツリーのルートの ID。
-
callback
function 省略可
callback
パラメータは次のようになります。(results: BookmarkTreeNode[]) => void
-
結果
-
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
getTree()
chrome.bookmarks.getTree(
callback?: function,
)
ブックマークの階層全体を取得します。
パラメータ
-
callback
function 省略可
callback
パラメータは次のようになります。(results: BookmarkTreeNode[]) => void
-
結果
-
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
)
指定された BookmarkTreeNode を指定された場所に移動します。
パラメータ
-
id
文字列
-
destination
オブジェクト
-
index
number(省略可)
-
parentId
文字列(省略可)
-
-
callback
function 省略可
callback
パラメータは次のようになります。(result: BookmarkTreeNode) => void
-
件の結果
-
戻り値
-
Promise<BookmarkTreeNode>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
)
ブックマークまたは空のブックマーク フォルダを削除します。
パラメータ
-
id
文字列
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
)
ブックマーク フォルダを再帰的に削除します。
パラメータ
-
id
文字列
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
)
指定されたクエリに一致する BookmarkTreeNode を検索します。オブジェクトで指定されたクエリは、指定されたすべてのプロパティに一致する BookmarkTreeNode を生成します。
パラメータ
-
クエリ
string | object
ブックマークの URL とタイトルと照合される単語と引用符付きのフレーズを含む文字列、またはオブジェクト。オブジェクトの場合は、
query
、url
、title
のプロパティを指定できます。指定されたすべてのプロパティに一致するブックマークが生成されます。-
クエリ
文字列(省略可)
ブックマークの URL とタイトルと照合される単語と引用符付きのフレーズを組み合わせた文字列。
-
title
文字列(省略可)
ブックマークのタイトル。完全一致。
-
URL
文字列(省略可)
ブックマークの URL。文字列が完全に一致します。フォルダには URL がありません。
-
-
callback
function 省略可
callback
パラメータは次のようになります。(results: BookmarkTreeNode[]) => void
-
結果
-
戻り値
-
Promise<BookmarkTreeNode[]>
Chrome 90 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
)
ブックマークまたはフォルダのプロパティを更新します。変更するプロパティのみを指定します。指定されていないプロパティは変更されません。注: 現在、サポートされているのは「title」と「url」のみです。
パラメータ
-
id
文字列
-
変更
オブジェクト
-
title
文字列(省略可)
-
URL
文字列(省略可)
-
-
callback
function 省略可
callback
パラメータは次のようになります。(result: BookmarkTreeNode) => void
-
件の結果
-
戻り値
-
Promise<BookmarkTreeNode>
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
-
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
文字列
-
-