Я не знаком с API расширения Chrome, но рискну предположить, что это то, что вы ищете:
$(function() {
function traverseBookmarks(nodes) {
var toReturn = [],
numNodes = nodes.length,
node;
for (var i = 0; i < numNodes; i++) {
node = nodes[i];
if (node.url) {
toReturn.push('<li>Name: ' + node.title + ' ID: ' + node.id + ' URL: ' + node.url + ' Parent ID: ' + node.parentId + '</li>');
}
if (node.children) toReturn.push(traverseBookmarks(node.children));
}
return toReturn.join('');
}
chrome.bookmarks.getTree(function(bookmarks) {
var bookmarksList = traverseBookmarks(bookmarks);
alert(bookmarksList);
$('#list').html(bookmarksList);
});
});
Примечания:
- Переписанная версия использует прямую рекурсию вместо использования (более или менее) глобальной переменной.
- Я добавил тег
</li>
, который, я думаю, вы пропустили.
- Я использовал подход "StringBuilder" вместо конкатенации строк для повышения производительности.