chrome.bookmarks

説明

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

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

権限

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 以降

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

  • folderType

    FolderType 省略可

    Chrome 134 以降

    存在する場合、これはブラウザによって追加されたフォルダであり、ユーザーや拡張機能が変更することはできません。このノードに unmodifiable プロパティが設定されていない場合、子ノードは変更される可能性があります。ノードをユーザーと拡張機能が変更できる場合は省略されます(デフォルト)。

    各フォルダタイプのノードは 0 個、1 個、または複数個存在することがあります。フォルダはブラウザによって追加または削除されることがありますが、拡張機能 API を介して追加または削除されることはありません。

  • id

    文字列

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

  • index

    number 省略可

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

  • parentId

    文字列 省略可

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

  • 同期

    ブール値

    Chrome 134 以降

    このノードがブラウザによってユーザーのリモート アカウント ストレージと同期されているかどうか。これは、同じ FolderType のアカウント バージョンとローカル バージョンを区別するために使用できます。このプロパティの値は、既存のノードで変更されることがあります(ユーザー操作の結果など)。

    注: これは、ノードがブラウザの組み込みアカウント プロバイダに保存されているかどうかを反映します。この値が false であっても、ノードがサードパーティ経由で同期される可能性があります。

    管理対象ノード(unmodifiabletrue に設定されているノード)の場合、このプロパティは常に false になります。

  • title

    文字列

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

  • 変更不可

    "managed"
     省略可

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

  • URL

    文字列 省略可

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

BookmarkTreeNodeUnmodifiable

Chrome 44 以降

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

"managed"

CreateDetails

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

プロパティ

  • index

    number 省略可

  • parentId

    文字列 省略可

    デフォルトでは [その他のブックマーク] フォルダに保存されます。

  • title

    文字列 省略可

  • URL

    文字列 省略可

FolderType

Chrome 134 以降

フォルダのタイプを示します。

列挙型

「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 または欠落している場合は、フォルダになります。

パラメータ

戻り値

get()

chrome.bookmarks.get(
  idOrIdList: string | [string, ...string[]],
)
: Promise<BookmarkTreeNode[]>

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

パラメータ

  • idOrIdList

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

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

戻り値

getChildren()

chrome.bookmarks.getChildren(
  id: string,
)
: Promise<BookmarkTreeNode[]>

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

パラメータ

  • id

    文字列

戻り値

getRecent()

chrome.bookmarks.getRecent(
  numberOfItems: number,
)
: Promise<BookmarkTreeNode[]>

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

パラメータ

  • numberOfItems

    数値

    返す最大アイテム数。

戻り値

getSubTree()

chrome.bookmarks.getSubTree(
  id: string,
)
: Promise<BookmarkTreeNode[]>

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

パラメータ

  • id

    文字列

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

戻り値

getTree()

chrome.bookmarks.getTree(): Promise<BookmarkTreeNode[]>

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

戻り値

move()

chrome.bookmarks.move(
  id: string,
  destination: object,
)
: Promise<BookmarkTreeNode>

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

パラメータ

  • id

    文字列

  • destination

    オブジェクト

    • index

      number 省略可

    • parentId

      文字列 省略可

戻り値

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 以降
chrome.bookmarks.search(
  query: string | object,
)
: Promise<BookmarkTreeNode[]>

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

パラメータ

  • クエリ

    文字列 | オブジェクト

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

    • クエリ

      文字列 省略可

      ブックマークの URL とタイトルに対して照合される単語と引用符付きのフレーズの文字列。

    • title

      文字列 省略可

      ブックマークのタイトル。完全に一致します。

    • URL

      文字列 省略可

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

戻り値

update()

chrome.bookmarks.update(
  id: string,
  changes: object,
)
: Promise<BookmarkTreeNode>

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

パラメータ

  • id

    文字列

  • 変更

    オブジェクト

    • title

      文字列 省略可

    • URL

      文字列 省略可

戻り値

イベント

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

      オブジェクト