如果我尝试以下代码:
chrome.bookmarks.getTree(function(items) {
items.forEach(function(item) {
document.write(item.url);
});
});
它返回未定义。但是当我写:chrome.bookmarks.getRecent(20, function(items) {
items.forEach(function(item) {
document.write(item.url);
});
});
有用。为什么不同?
最佳答案
chrome.bookmarks.getTree
和chrome.bookmarks.getRecent
都返回BookmarkTreeNodes数组,但是BookmarkTreeNodes不一定具有url
属性。对于getTree
,树的顶部节点是文件夹,没有URL:
如果使用getTree
,则必须使用每个节点的children
数组递归遍历树。有助于了解每个BookmarkTreeNode都有children
属性(如果是文件夹)或url
属性(如果是实际书签)。尝试类似的东西:
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); }
}
关于javascript - "chrome.bookmarks.getTree"为什么不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10268776/