title | slug | l10n | ||
---|---|---|---|---|
bookmarks.getTree() |
Mozilla/Add-ons/WebExtensions/API/bookmarks/getTree |
|
{{AddonSidebar}}
bookmarks.getTree()
返回一个数组,其中包含书签树的根节点,该节点是一个 {{WebExtAPIRef("bookmarks.BookmarkTreeNode")}} 对象。
如果它们是文件夹的话,你可以通过其 children
属性及其后代的 children
属性递归地访问整个树。
这是一个返回 Promise
的异步函数。
let gettingTree = browser.bookmarks.getTree()
无。
一个 Promise
,其会兑现一个包含代表根节点的 bookmarks.BookmarkTreeNode
对象的数组。
这个示例会打印出整个书签树:
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 (const child of bookmarkItem.children) {
logItems(child, indent);
}
}
indent--;
}
function logTree(bookmarkItems) {
logItems(bookmarkItems[0], 0);
}
function onRejected(error) {
console.log(`An error: ${error}`);
}
let gettingTree = browser.bookmarks.getTree();
gettingTree.then(logTree, onRejected);
{{WebExtExamples}}
{{Compat}}
Note
此 API 基于 Chromium 的 chrome.bookmarks
API。该文档衍生自 Chromium 代码中的 bookmarks.json
。