javascript – Firefox附加组件如何访问用户的书签文件夹

我正在编写一些操作用户书签的Firefox附加代码.

我从https://developer.mozilla.org/En/Places_Developer_Guide开始使用“搜索书签”代码,最后编写了以下代码,其中有效…

var folders = [bookmarksService.bookmarksMenuFolder, bookmarksService.toolbarFolder, bookmarksService.unfiledBookmarksFolder];
var bookmarks = [];
for (var i = 0; i < 3; i++) {
    query.setFolders([folders[i]], 1);
    var result = historyService.executeQuery(query, options);
    var rootNode = result.root;
    rootNode.containerOpen = true;
    getNode(rootNode, bookmarks);
    rootNode.containerOpen = false;
}

此代码的问题在于它硬编码3个默认书签文件夹.我希望代码能够处理用户创建自己的书签文件夹的情况.

如何更改此代码以使其循环遍历所有书签文件夹?

最佳答案 我想你在这里与“文件夹”术语混淆了.您只需要代码块中的三个硬编码项.用户创建的任何书签都将位于这三个位置之一.您可以通过在Firefox中打开书签编辑器(Ctrl Shift B)来查看此操作.在左侧的树窗格中,选择“所有书签”项,并注意其下方只有3个(可能是4个)项:

>书签工具栏
>书签菜单
>未分类的书签

如果右键单击“所有书签”顶级项目,您将注意到此级别没有“创建文件夹”选项.任何用户创建的书签都在此级别列出的子项下方.

The Places Developer Guide列出了一个额外的顶级文件夹(tagsFolder),但我认为你不必担心那个.我无法想象存在那里的书签而不是其他三个位置之一.

点赞