このページではソースコードの一部分を簡単な解説をしています。
Chromeブラウザをお使いの方はコチラから拡張機能をインストール出来ます
Edgeブラウザをお使いの方はコチラから拡張機能をインストール出来ます 
ソースコードはgithubにあります 
前回作成した拡張機能に機能を追加
前回作成した拡張機能にフォルダ別でブックマークを表示する機能とブックマークから消す機能を追加しました。


ブックマークフォルダを取得する
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34  | 
						// ブックマークをすべて取得 function getTreeNodes() {   chrome.bookmarks.getTree(function (bookmarkTreeNodes) {     const TreeNodes = bookmarkTreeNodes;     getNode(TreeNodes);   }); } //フォルダだけを取得する function getNode(bookmarkTreeNodes) {   const fragment = document.createDocumentFragment();   const template = document.getElementById("template");   for (let i = 0; i < bookmarkTreeNodes.length; i++) {     const node = bookmarkTreeNodes[i];     const clone = template.content.cloneNode(true);     if (node.children) {       if (node.dateGroupModified) {         clone.querySelector(".time").textContent = time(node.dateGroupModified); // フォルダが作成された時間         clone.querySelector(".title").textContent = node.title;                  // フォルダ名         clone.querySelector(".title").id = node.id;                              // フォルダID         clone.querySelector(".title").onclick = function () {                    // フォルダ名がクリックされた時の処理           chrome.tabs.create({             url: `../html/main.html?id=${this.id}&title=${this.textContent}`,           });         };       }       getNode(node.children);     }     fragment.appendChild(clone);   }   document.querySelector("ul").appendChild(fragment); } getTreeNodes();  | 
					
chrome.bookmarksAPIのgetTreeメソッドを使用して一度すべてのブックマークを取得した後、フォルダ名を抜き出しています。フォルダ名をクリックすると21行目の関数が実行され、GETパラメーターでフォルダ名とフォルダのIDが送信され新しいタブが開かれます。
フォルダ内のブックマークを一覧表示する
| 
					 1 2 3 4 5 6 7 8 9 10 11 12  | 
						// GETパラメーターで送られてきたフォルダ名とIDを取得する const url = new URL(window.location.href); const params = url.searchParams; const title = params.get("title"); // フォルダ別のブックマーク一覧を表示する if (params.get("id")) {   const id = params.get("id");   document.querySelector("h1").textContent = title;   chrome.bookmarks.getChildren(id, function (subTree) {     getNode(subTree);   }); }   | 
					
chrome.bookmarksAPIのgetChildrenメソッドを使用してフォルダ内にあるブックマークを取得します。第一引数にはファルダのID、第二引数には取得したブックマークが返り値で返ってくるので、コールバック関数で処理します。
ブックマーク消す機能を追加
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  | 
						//ブックマーク一覧取得して表示する function getNode(bookmarkTreeNodes) {   const fragment = document.createDocumentFragment();   const template = document.getElementById("template");   bookmarkTreeNodes.forEach(function (node) {     const clone = template.content.cloneNode(true);     clone.querySelector("a").href = node.url;     clone.querySelector("a").textContent = node.title;     clone.querySelector(".time").textContent = time(node.dateAdded);     clone.querySelector(".remove").id = node.id;     clone.querySelector(".remove").title = node.title;     //ブックマークを削除する     clone.querySelector(".remove").onclick = function () {       const result = confirm(`${this.title}を削除してもよろしいですか?`);       if (result) {         chrome.bookmarks.remove(this.id);         this.parentNode.remove();       }     };     fragment.appendChild(clone);   });   document.querySelector("ul").appendChild(fragment); }  | 
					
14行目のonclickに登録されている関数でブックマークを消しています。ブックマークを消すには chrome.bookmarksAPIのremoveメソッドを使用します。引数にはブックマークのidを渡す必要があります。javascriptのparentNode.removeメソッドで表示画面からも消しています。
最後までお読みいただきありがとうございました。
Chromeブラウザをお使いの方はコチラから拡張機能をインストール出来ます
Edgeブラウザをお使いの方はコチラから拡張機能をインストール出来ます
ソースコードはgithubにあります
  
  
  
  