Tom*_*Tom 5 javascript google-chrome-extension
如果我尝试以下代码:
chrome.bookmarks.getTree(function(items) {
items.forEach(function(item) {
document.write(item.url);
});
});
Run Code Online (Sandbox Code Playgroud)
它会回复原状.但是当我写道:
chrome.bookmarks.getRecent(20, function(items) {
items.forEach(function(item) {
document.write(item.url);
});
});
Run Code Online (Sandbox Code Playgroud)
有用.
为什么会有所不同?
双方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); }
}
Run Code Online (Sandbox Code Playgroud)