「Places」の編集履歴(バックアップ)一覧はこちら
「Places」(2015/05/13 (水) 12:18:45) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#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");}}
*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()
#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:///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()