bookmarks.getSubTree()

bookmarks.getSubTree() 方法會根據提供的 ID,非同步檢索一個 bookmarks.BookmarkTreeNode 物件。

如果該項是資料夾,您可以透過其 children 屬性以及其後代(如果它們本身也是資料夾)的 children 屬性來遞迴訪問其所有後代。

這是一個非同步函式,返回一個 Promise

語法

js
let gettingSubTree = browser.bookmarks.getSubTree(
  id                     // string
)

引數

id

一個 string,指定要檢索的子樹根節點的 ID。

返回值

一個 Promise,它會以一個包含一個物件的陣列來 fulfilled,該物件是一個 bookmarks.BookmarkTreeNode 物件,代表具有給定 ID 的項。

如果找不到與 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);

瀏覽器相容性

注意: 此 API 基於 Chromium 的 chrome.bookmarks API。本文件摘自 Chromium 程式碼中的 bookmarks.json