Skip to content

Latest commit

 

History

History
103 lines (81 loc) · 3.5 KB

File metadata and controls

103 lines (81 loc) · 3.5 KB
title slug l10n
bookmarks.getTree()
Mozilla/Add-ons/WebExtensions/API/bookmarks/getTree
sourceCommit
43e3ff826b7b755b05986c99ada75635c01c187c

{{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