--- title: bookmarks.getSubTree() slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/getSubTree tags: - API - Add-ons - Bookmarks - Extensions - Method - Non-standard - Reference - WebExtensions - getSubTree translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/getSubTree ---
{{AddonSidebar()}}

La méthode bookmarks.getSubTree() récupère de façon asynchrone un {{WebExtAPIRef("bookmarks.BookmarkTreeNode")}}, étant donné son ID.

Si l'élément est un dossier, vous pouvez accéder à tous ses descendants de manière récursive en utilisant sa propriété children et la propriété children de ses descendants, s'ils sont eux-mêmes des dossiers.

C'est une fonction asynchrone qui renvoie une Promise.

Syntaxe

var gettingSubTree = browser.bookmarks.getSubTree(
  id                     // string
)

Paramètres

id
Un {{jsxref("string")}} spécifiant l'ID de la racine du sous-arbre à récupérer.

Valeur retournée

Une Promise qui sera remplie avec un tableau contenant un objet unique, un objet {{WebExtAPIRef('bookmarks.BookmarkTreeNode')}}, représentant l'élément avec l'ID donné.Si un nœud correspondant à id n'a pas pu être trouvé, la promesse sera rejetée avec un message d'erreur.

Exemples

Cet exemple imprime récursivement le sous-arbre sous un noeud donné :

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 (var child of bookmarkItem.children) {
      logItems(child, indent);
    }
  }
}

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

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

var subTreeID = "root_____";

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

{{WebExtExamples}}

Compatibilité du navigateur

{{Compat("webextensions.api.bookmarks.getSubTree")}}

Remerciements :

Cette API est basée sur l'API Chromium chrome.bookmarks. Cette documentation provient de  bookmarks.json dans le code Chromium.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.