4

我正在编写一些操纵用户书签的 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 个默认书签文件夹进行了硬编码。我想要代码来处理用户创建自己的书签文件夹的情况。

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

4

1 回答 1

2

我认为您对这里的“文件夹”术语感到困惑。您在代码块中拥有的三个硬编码项就是您所需要的。用户创建的任何书签都将位于这三个位置之一。您可以通过在 Firefox (Ctrl + Shift + B) 中打开书签编辑器来查看此操作。在左侧的树窗格中,选择All Bookmarks项,注意它下面只有 3 个(可能是 4 个)项:

  1. 书签工具栏
  2. 书签菜单
  3. 未分类的书签

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

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

于 2012-05-17T19:43:14.277 回答