ChromeExtensionでブックマーク一覧を走査する
最近,ChromeExtensionの開発に手を出し始めたきたけーです.
素振りがてらブックマーク一覧の走査してみました.console.logするためにpopupに記述しましたが,ブックマーク情報の取得はbackgroundなどでも可能です.
chrome.bookmarks.getTree(function (trees) { for (var i=0; i < trees.length; i++) { scanNode(trees[i], 0); } }); function scanNode(node, level) { if (isPage(node)) { console.log(makePadding(level)+"Page:"+node.title); } else { if (isRoot(node)) { console.log(makePadding(level)+"Root:"); } else { console.log(makePadding(level)+"Folder:"+node.title); } var children = node.children; for (var i=0; i < children.length; i++) { scanNode(children[i], level+1); } } } function isRoot(node) { return node.id === "0"; } function isPage(node) { return !node.hasOwnProperty("children"); } function makePadding(size) { return (new Array(size+1)).join(" "); }
実行結果はこんなかんじ
書いて思ったこと
- chrome.bookmarks.getTreeのコールバックでブックマークの木構造を取得できるんだけど,なぜかこれが配列になってて不思議(普通に考えてひとつだと思うんだけど)
- ルートのidが0と決めつけたんだけどこれはどうなんだ