bookmarks.getSubTree()

bookmarks.getSubTree() 方法根据给定的 ID 异步检索一个 bookmarks.BookmarkTreeNode

如果该项目是一个文件夹,你可以使用其 children 属性以及其后代(如果它们本身是文件夹)的 children 属性递归访问所有后代。

这是一个返回 Promise 的异步函数。

语法

js
let gettingSubTree = browser.bookmarks.getSubTree(
  id                     // 字符串
)

参数

id

一个指定要检索的子树根的 ID 的字符串

返回值

一个 Promise,其会兑现一个数组,包含一个对象,该对象是表示具有给定 ID 的项目的 bookmarks.BookmarkTreeNode 对象。

如果找不到与 ID 对应的节点,Promise 将以错误消息被拒绝。

示例

此示例递归打印给定节点下的子树:

js
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: ${bookmarkItem.id}`);
    indent++;
  }
  if (bookmarkItem.children) {
    for (const child of bookmarkItem.children) {
      logItems(child, indent);
    }
  }
}

function logSubTree(bookmarkItems) {
  logItems(bookmarkItems[0], 0);
}

function onRejected(error) {
  console.log(`An error: ${error}`);
}

let subTreeID = "root_____";

browser.bookmarks.getSubTree(subTreeID).then(logSubTree, onRejected);

浏览器兼容性

BCD tables only load in the browser

备注:此 API 基于 Chromium 的 chrome.bookmarks API。该文档衍生自 Chromium 代码中的 bookmarks.json