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

ここで「フォルダ」という用語に混乱していると思います。コード ブロックにハードコードされた 3 つの項目だけで十分です。ユーザーが作成したブックマークは、これら 3 つの場所のいずれかに配置されます。Firefox でブックマーク エディタ (Ctrl + Shift + B) を開くと、この動作を確認できます。左側のツリー ペインで [すべてのブックマーク] 項目を選択し、その下に 3 つ (おそらく 4 つ) の項目しかないことに注意してください。

  1. ブックマークツールバー
  2. ブックマークメニュー
  3. ソートされていないブックマーク

[すべてのブックマーク] 最上位項目を右クリックすると、このレベルに [フォルダーの作成] オプションがないことに気付くでしょう。ユーザーが作成したブックマークは、このレベルにリストされているサブアイテムの下にあります。

Places Developer Guideには、もう 1 つの最上位フォルダー ( tagsFolder ) がリストされていますが、それについて心配する必要はないと思います。ブックマークがそこに存在し、他の 3 つの場所のいずれにも存在しないとは想像できません。

于 2012-05-17T19:43:14.277 に答える