bookmarks.getSubTree()
bookmarks.getSubTree()
方法根据给定的 ID 异步检索一个 bookmarks.BookmarkTreeNode
。
如果该项目是一个文件夹,你可以使用其 children
属性以及其后代(如果它们本身是文件夹)的 children
属性递归访问所有后代。
这是一个返回 Promise
的异步函数。
语法
js
let gettingSubTree = browser.bookmarks.getSubTree(
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
。