Chrome书签API -

时间:2011-04-06 17:49:48

标签: google-chrome-extension bookmarks

我正在尝试创建一个只提醒前5个书签标题的简单示例。

我使用了Google的示例代码并删除了搜索查询,看看我是否可以创建循环遍历所有节点的基本方法。以下测试代码未通过我的警报测试,我不知道为什么。

function dumpBookmarks() {
var bookmarkTreeNodes = chrome.bookmarks.getTree(
  function(bookmarkTreeNodes) {
   (dumpTreeNodes(bookmarkTreeNodes));
  });
}
function dumpTreeNodes(bookmarkNodes) {
var i;
for (i = 0; i < 5; i++) {
  (dumpNode(bookmarkNodes[i]));
}
}
function dumpNode(bookmarkNode) {
alert(bookmarkNode.title);
};

1 个答案:

答案 0 :(得分:10)

只需将bookmarkTreeNodes转储到控制台,您就会立即看到问题所在:

var bookmarkTreeNodes = chrome.bookmarks.getTree(
  function(bookmarkTreeNodes) {
   console.log(bookmarkTreeNodes);
  });
}

(要访问控制台,请转到chrome://extensions/并点击background.html链接)

正如您所看到的,返回的树包含一个空标题的根元素。您需要遍历其子项才能获得实际的书签。

简单的书签遍历(只遍历所有节点):

function traverseBookmarks(bookmarkTreeNodes) {
    for(var i=0;i<bookmarkTreeNodes.length;i++) {
        console.log(bookmarkTreeNodes[i].title, bookmarkTreeNodes[i].url ? bookmarkTreeNodes[i].url : "[Folder]");

        if(bookmarkTreeNodes[i].children) {
            traverseBookmarks(bookmarkTreeNodes[i].children);
        } 

    }
}