browser.bookmarks

説明

chrome.bookmarks API を使用して、ブックマークの作成、整理、操作を行います。オーバーライド ページもご覧ください。これを使用して、カスタムのブックマーク マネージャー ページを作成できます。

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

権限

bookmarks

bookmarks 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

Chrome 44 以降 Chrome 148 以降の browser.*

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

値

"managed"

CreateDetails

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

プロパティ

  • index

    number 省略可

  • parentId

    文字列 省略可

    デフォルトは [その他のブックマーク] フォルダです。

  • title

    文字列 省略可

  • URL

    文字列 省略可

FolderType

Chrome 134 以降 Chrome 148 以降の browser.*

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

列挙型

"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

Chrome 145 以降 Chrome 148 以降の browser.*

ルートレベル ノードに関連付けられた id。

値

"0"

メソッド

create()

browser.bookmarks.create(
  bookmark: CreateDetails,
)
: Promise<BookmarkTreeNode>

指定された parentId の下にブックマークまたはフォルダを作成します。url が NULL または存在しない場合、フォルダになります。

パラメータ

戻り値

get()

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

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

パラメータ

  • idOrIdList

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

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

戻り値

getChildren()

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

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

パラメータ

  • id

    文字列

戻り値

getRecent()

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

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

パラメータ

  • numberOfItems

    数値

    返す最大アイテム数。

戻り値

getSubTree()

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

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

パラメータ

  • id

    文字列

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

戻り値

getTree()

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

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

戻り値

move()

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

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

パラメータ

  • id

    文字列

  • destination

    オブジェクト

    • index

      number 省略可

    • parentId

      文字列 省略可

戻り値

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

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

パラメータ

  • クエリ

    string | object

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

    • クエリ

      文字列 省略可

      ブックマークの URL とタイトルに一致する単語と引用符で囲まれたフレーズの文字列。

    • title

      文字列 省略可

      ブックマークのタイトル。完全に一致するものが検索されます。

    • URL

      文字列 省略可

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

戻り値

update()

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

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

パラメータ

  • id

    文字列

  • 変更

    オブジェクト

    • title

      文字列 省略可

    • URL

      文字列 省略可

戻り値

イベント

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

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

        文字列