首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么"chrome.bookmarks.getTree“不起作用?

为什么"chrome.bookmarks.getTree“不起作用?
EN

Stack Overflow用户
提问于 2012-04-22 22:27:37
回答 2查看 3.9K关注 0票数 6

如果我尝试以下代码:

代码语言:javascript
复制
chrome.bookmarks.getTree(function(items) {
  items.forEach(function(item) {
    document.write(item.url);
  });
});

它返回undifined。但当我写道:

代码语言:javascript
复制
chrome.bookmarks.getRecent(20, function(items) {
  items.forEach(function(item) {
    document.write(item.url);
  });
});

它起作用了。

为什么会有所不同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-24 13:44:06

chrome.bookmarks.getTreechrome.bookmarks.getRecent都返回一个BookmarkTreeNodes数组,但BookmarkTreeNodes不一定有url属性。在getTree的情况下,树的顶部节点是文件夹,并且没有URL:

如果使用getTree,则必须使用每个节点的children数组递归地遍历树。了解每个书签都有一个children属性(如果它是一个文件夹)或一个url属性(如果它是一个实际的书签)是很有帮助的。尝试如下所示:

代码语言:javascript
复制
chrome.bookmarks.getTree(function(itemTree){
    itemTree.forEach(function(item){
        processNode(item);
    });
});

function processNode(node) {
    // recursively process child nodes
    if(node.children) {
        node.children.forEach(function(child) { processNode(child); });
    }

    // print leaf nodes URLs to console
    if(node.url) { console.log(node.url); }
}
票数 10
EN

Stack Overflow用户

发布于 2015-07-16 09:56:42

chrome.bookmarks需要权限才能使用。尝试在页面chrome://bookmarks中使用它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10268776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档