※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

「Places」の編集履歴(バックアップ)一覧はこちら

Places」の最新版変更点

追加された行はこの色になります。

削除された行はこの色になります。

 #contents()
 *基本情報
 -[[Places - Mozilla | MDN>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Places]]
 -[[nsINavBookmarksService - Mozilla | MDN>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavBookmarksService]]
 -[[Places utilities for JavaScript - Mozilla | MDN>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Places/Places_utilities_for_JavaScript]]
 #highlight(javascript){{
 Cu.import("resource://gre/modules/PlacesUtils.jsm");
-Cu.import("resource://app/modules/PlacesUIUtils.jsm");}}
+Cu.import("resource:///modules/PlacesUIUtils.jsm");}}
 *id の取得
 **既存のフォルダの id
 |フォルダ|コード|h
 |すべてのブックマーク|PlacesUIUtils.allBookmarksFolderId|
 |ブックマークツールバー|PlacesUtils.toolbarFolderId|
 |ブックマークメニュー|PlacesUtils.bookmarksMenuFolderId|
 |未整理のブックマーク|PlacesUtils.unfiledBookmarksFolderId|
 |タグ|PlacesUtils.tagsFolderId|
 |Placesルート|PlacesUtils.placesRootId|
 タグはあまり使わないと思うし、Placesルートにいたっては通常は使うことは無いと思うが、Placesデータベース内では普通のフォルダとして存在する。
 
 *id からアイテムの情報を取得
 #highlight(javascript){{
 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 を取得
 #highlight(javascript){{
 var result = PlacesUtils.getFolderContents(folderId);
 var node = result.root; }}
 result は [[nsINavHistoryResult>https://developer.mozilla.org/en-US/docs/nsINavHistoryResult]]。
 node は [[nsINavHistoryContainerResultNode>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavHistoryContainerResultNode]]。
 
 *取得した node で操作
 **PlacesUtils によるノードの判別
 情報古い
 #highlight(javascript){{
 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);}}
 
 **フォルダノードからフォルダの中身にアクセスし、処理する
 -[[nsINavHistoryResultNode - Mozilla | MDN>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavHistoryResultNode]]
 -[[Querying Places - Mozilla | MDN>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Places/Querying]]
 #highlight(javascript){{
 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)
 -[[Using the Places annotation service - Mozilla | MDN>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Places/Using_the_Places_annotation_service]]
 -[[nsIAnnotationService - Mozilla | MDN>https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAnnotationService]]
 
 *その他の情報
 #lsd()