title | slug |
---|---|
bookmarks.getSubTree() |
Mozilla/Add-ons/WebExtensions/API/bookmarks/getSubTree |
{{AddonSidebar}}
bookmarks.getSubTree()
は、ID を指定して {{WebExtAPIRef("bookmarks.BookmarkTreeNode")}} を非同期に取得するメソッドです。
対象がフォルダーの場合、children
プロパティを再帰的にたどることで、すべての子要素にアクセスすることができます。
browser.bookmarks.getSubTree(
id, // 文字列
callback, // 関数
);
-
id
- : 取得したい部分木のルートノードに対応する ID を表す {{jsxref("string")}} です。
-
callback
-
: リクエストしたノードが取得された際に呼び出される関数です。この関数には以下の引数が渡ります。
results
- : 指定した ID に対応する {{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトが 1 つ含まれた配列
-
{{Compat}}
以下の例は、指定したノードの配下にある部分木を再帰的に出力するものです。
function makeIndent(indentLength) {
return ".".repeat(indentLength);
}
function logItems(bookmarkItem, indent) {
if (bookmarkItem.url) {
console.log(makeIndent(indent) + bookmarkItem.url);
} else {
console.log(makeIndent(indent) + "Folder");
indent++;
}
if (bookmarkItem.children) {
for (child of bookmarkItem.children) {
logItems(child, indent);
}
}
indent--;
}
function logSubTree(bookmarkItems) {
logItems(bookmarkItems[0], 0);
}
function handleClick() {
var subTreeID = "unfiled_____";
chrome.bookmarks.getSubTree(subTreeID, logSubTree);
}
chrome.browserAction.onClicked.addListener(handleClick);
{{WebExtExamples}}
Note
この API は Chromium の chrome.bookmarks
API に基づいています。また、このドキュメントは bookmarks.json
における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。