我正在编写一些操作用户书签的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个默认书签文件夹。我希望代码能够处理用户创建自己的书签文件夹的情况。
如何更改此代码以使其循环遍历所有书签文件夹?
答案 0 :(得分:2)
我认为你对这里的“文件夹”术语感到困惑。您只需要代码块中的三个硬编码项。用户创建的任何书签都将位于这三个位置之一。您可以通过在Firefox中打开书签编辑器(Ctrl + Shift + B)来查看此操作。在左侧的树状窗格中,选择所有书签项,并注意其下方只有3个(可能是4个)项目:
如果右键单击“所有书签”顶级项目,您会注意到此级别没有“创建文件夹”选项。任何用户创建的书签都在此级别列出的子项目下方。
The Places Developer Guide列出了另一个顶级文件夹( tagsFolder ),但我认为您不必担心这个问题。我无法想象存在那里的书签而不是其他三个地点之一。