基本情報
Cu.import("resource://gre/modules/PlacesUtils.jsm");
Cu.import("resource:///modules/PlacesUIUtils.jsm");
id の取得
既存のフォルダの id
フォルダ |
コード |
すべてのブックマーク |
PlacesUIUtils.allBookmarksFolderId |
ブックマークツールバー |
PlacesUtils.toolbarFolderId |
ブックマークメニュー |
PlacesUtils.bookmarksMenuFolderId |
未整理のブックマーク |
PlacesUtils.unfiledBookmarksFolderId |
タグ |
PlacesUtils.tagsFolderId |
Placesルート |
PlacesUtils.placesRootId |
タグはあまり使わないと思うし、Placesルートにいたっては通常は使うことは無いと思うが、Placesデータベース内では普通のフォルダとして存在する。
id からアイテムの情報を取得
var type = PlacesUtils.bookmarks.getItemType(id);
var uri = PlacesUtils.bookmarks.getBookmarkURI(id);
var title = PlacesUtils.bookmarks.getItemTitle(id);
var index = PlacesUtils.bookmarks.getItemIndex(id);
var parentFolderId = PlacesUtils.bookmarks.getFolderIdForItem(id);
var folderReadonly = PlacesUtils.bookmarks.getFolderReadonly(id);
node の取得
フォルダ id からフォルダ node を取得
var result = PlacesUtils.getFolderContents(folderId);
var node = result.root;
取得した node で操作
PlacesUtils によるノードの判別
情報古い
PlacesUtils.nodeIsFolder(node);
PlacesUtils.nodeIsBookmark(node);
PlacesUtils.nodeIsSeparator(node);
PlacesUtils.nodeIsVisit(node);
PlacesUtils.nodeIsURI(node);
PlacesUtils.nodeIsQuery(node);
PlacesUtils.nodeIsReadOnly(node);
PlacesUtils.nodeIsHost(node);
PlacesUtils.nodeIsDay(node);
PlacesUtils.nodeIsTagQuery(node);
PlacesUtils.nodeIsContainer(node);
PlacesUtils.nodeIsHistoryContainer(node);
PlacesUtils.nodeIsDynamicContainer(node);
PlacesUtils.nodeIsLivemarkContainer(node);
PlacesUtils.nodeIsLivemarkItem(node);
フォルダノードからフォルダの中身にアクセスし、処理する
Components.utils.import("resource://gre/modules/Services.jsm");
var folderNode = ??? //アクセスしたいフォルダのノード
folderNode.containerOpen = true; // フォルダを開く
var nodeCount = folderNode.childCount;
for (var i = 0; i < nodeCount; i++) {
let childNode = folderNode.getChild(i);
switch (childNode.type) {
case childNode.RESULT_TYPE_URI :
// URIアイテムの処理。例えばエラーコンソールにタイトルとURLを列挙
Services.console.logStringMessage("Title:" + childNode.title + "\nURL:" + childNode.uri);
break;
case childNode.RESULT_TYPE_FOLDER :
// フォルダの処理。例えば再帰処理
arguments.callee(childNode);
break;
case childNode.RESULT_TYPE_SEPARATOR :
// セパレーターの処理
break;
case ~
}
}
folderNode.containerOpen = false; // フォルダを閉じる
注釈(Annotation)
その他の情報
最終更新:2015年05月13日 12:18