chrome.bookmarks

説明

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

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

権限

bookmarks

bookmark 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 リポジトリから ブックマーク API の例をインストールしてください。

BookmarkTreeNode

ブックマーク ツリー内のノード(ブックマークまたはフォルダ)。子ノードは親フォルダ内で並べ替えられます。

プロパティ

  • 子供

    BookmarkTreeNode[] 省略可

    このノードの子の順序付きリスト。

  • dateAdded

    number(省略可)

    このノードが作成された日時。エポック(new Date(dateAdded))からのミリ秒数で示されます。

  • dateGroupModified

    number(省略可)

    このフォルダのコンテンツが最後に変更された日時(エポックからのミリ秒数)。

  • dateLastUsed

    number(省略可)

    Chrome 114 以降

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

  • id

    文字列

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

  • 指数

    number(省略可)

    親フォルダ内でのこのノードの 0 から始まる位置。

  • parentId

    string(省略可)

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

  • title

    文字列

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

  • 変更不可能

     省略可

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

  • URL

    string(省略可)

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

BookmarkTreeNodeUnmodifiable

Chrome 44 以降

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

CreateDetails

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

プロパティ

  • 指数

    number(省略可)

  • parentId

    string(省略可)

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

  • title

    string(省略可)

  • URL

    string(省略可)

プロパティ

MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

非推奨

Chrome によるブックマークの書き込み操作の制限がなくなりました。

1000000

MAX_WRITE_OPERATIONS_PER_HOUR

非推奨

Chrome によるブックマークの書き込み操作の制限がなくなりました。

1000000

Methods

create()

Promise
chrome.bookmarks.create(
  bookmark: CreateDetails,
  callback?: function,
)

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

パラメータ

戻り値

  • Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

get()

Promise
chrome.bookmarks.get(
  idOrIdList: string|[string,...string[]],
  callback?: function,
)

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

パラメータ

  • idOrIdList

    文字列|[文字列,...文字列 []]

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

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[])=>void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

getChildren()

Promise
chrome.bookmarks.getChildren(
  id: string,
  callback?: function,
)

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

パラメータ

  • id

    文字列

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[])=>void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

getRecent()

Promise
chrome.bookmarks.getRecent(
  numberOfItems: number,
  callback?: function,
)

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

パラメータ

  • numberOfItems

    数値

    返すアイテムの最大数。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[])=>void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

getSubTree()

Promise
chrome.bookmarks.getSubTree(
  id: string,
  callback?: function,
)

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

パラメータ

  • id

    文字列

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

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[])=>void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

getTree()

Promise
chrome.bookmarks.getTree(
  callback?: function,
)

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

パラメータ

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

move()

Promise
chrome.bookmarks.move(
  id: string,
  destination: object,
  callback?: function,
)

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

パラメータ

  • id

    文字列

  • destination

    オブジェクト

    • 指数

      number(省略可)

    • parentId

      string(省略可)

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (result: BookmarkTreeNode)=>void

戻り値

  • Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

remove()

Promise
chrome.bookmarks.remove(
  id: string,
  callback?: function,
)

ブックマークまたは空のブックマーク フォルダを削除します。

パラメータ

  • id

    文字列

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    ()=>void

戻り値

  • Promise<void>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

removeTree()

Promise
chrome.bookmarks.removeTree(
  id: string,
  callback?: function,
)

ブックマーク フォルダを再帰的に削除します。

パラメータ

  • id

    文字列

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    ()=>void

戻り値

  • Promise<void>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

Promise
chrome.bookmarks.search(
  query: string|object,
  callback?: function,
)

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

パラメータ

  • クエリ

    文字列|オブジェクト

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

    • クエリ

      string(省略可)

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

    • title

      string(省略可)

      ブックマークのタイトルです。そのまま一致します。

    • URL

      string(省略可)

      ブックマークの URL をそのまま一致させます。フォルダに URL がないことに注意してください。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (results: BookmarkTreeNode[])=>void

戻り値

  • Promise<BookmarkTreeNode[]>

    Chrome 90 以降

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

update()

Promise
chrome.bookmarks.update(
  id: string,
  changes: object,
  callback?: function,
)

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

パラメータ

  • id

    文字列

  • 変更点

    オブジェクト

    • title

      string(省略可)

    • URL

      string(省略可)

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (result: BookmarkTreeNode)=>void

戻り値

  • 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

        string(省略可)

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

      オブジェクト

      • 指数

        数値

      • oldIndex

        数値

      • oldParentId

        文字列

      • parentId

        文字列

onRemoved

chrome.bookmarks.onRemoved.addListener(
  callback: function,
)

ブックマークまたはフォルダが削除されたときに呼び出されます。フォルダが再帰的に削除されると、フォルダに関する通知は 1 件発行され、フォルダの内容に関する通知は発行されません。

パラメータ

  • callback

    機能

    callback パラメータは次のようになります。

    (id: string,removeInfo: object)=>void

    • id

      文字列

    • removeInfo

      オブジェクト