Firefox bookmarks exploration not going past first level with Javascript

后端 未结 2 1362
野性不改
野性不改 2021-01-16 11:47

I\'ve written some code to explore my Firefox bookmarks but I only get the first level of bookmarks (i.e. I don\'t get the links in the folders).

e.g.

2条回答
  •  深忆病人
    2021-01-16 12:38

    One obvious mistake is using toolbarFolder as a starting point - that's only the bookmarks toolbar. If you want all bookmarks (meaning bookmarks menu, bookmarks toolbar and unsorted bookmarks) you need to change query parameters:

    query.setFolders([
        bookmarksService.bookmarksMenuFolder,
        bookmarksService.toolbarFolder,
        bookmarksService.unfiledBookmarksFolder
    ], 3);
    

    The other issue is getting childCount property on a nsINavHistoryResultNode object - there is no such property. Before you can access properties of nsINavHistoryContainerResultNode you need to call QueryInterface, either explicitly or implicitly (via instanceof). So I would write:

    } else if (node.type == 6 && node instanceof Components.interfaces.nsINavHistoryContainerResultNode) {
        var oldOpen = node.containerOpen;
        node.containerOpen = true;
        browse_bookmark_node(node, array);
        node.containerOpen = oldOpen;
    }
    

提交回复
热议问题