「Places/コンテキストメニュー追加」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
#contents()
*Places の右クリックメニューに項目追加
#highlight(XML){
<menupopup id="placesContext">
<menuitem label="サンプル"
oncommand="function();"
selectiontype="single"
selection="bookmark|folder"
insertbefore="placesContext_openSeparator"/>
</menupopup>}
placesContext は chrome://browser/content/places/placesOverlay.xulに書かれているので、それを overlay してやればいい。
-[[SCRAPBLOG : Places 右クリックメニューへのメニュー項目追加>http://www.xuldev.org/blog/?p=178]]
**表示非表示の切り替え
onpopupshowing なんて使わなくても属性を設定するだけで簡単に表示の切り替えが出来る。places/controller.js に実装されている。
|属性|説明|h
|selectiontype|single/multiple のいずれか。単数/複数選択で表示|
|selection|下記の表の値。"|"で複数指定可能。条件が合えば表示|
|forcehideselection|下記の表の値。"|"で複数指定可能。条件が合えば隠す|
|hideifnoinsetionpoint|値はtrue固定。挿入する場所が無いと隠す。例えばクエリフォルダ内にアイテムの新規作成とか|
selection や forcehideselection に設定できる値のリスト
|値|説明|h
|query|[[nsINavHistoryResultNode>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsINavHistoryResultNode]] で RESULT_TYPE_QUERY|
| host|[[nsINavHistoryQueryOptions>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsINavHistoryQueryOptions#Result_type_constants]] で RESULTS_AS_SITE_QUERY|
| day|これは RESULTS_AS_DATE_QUER か RESULTS_AS_DATE_SITE_QUERY|
|dynamiccontainer|RESULT_TYPE_DYNAMIC_CONTAINER|
|folder|フォルダ|
|separator|セパレーター|
|link|RESULT_TYPE_URI、RESULT_TYPE_VISIT、RESULT_TYPE_FULL_VISIT|
| bookmark|ブックマーク|
| microsummary||
| tagChild||
| livemarkChild||
*右クリックメニューから、選択されてるノードを取得する
#highlight(javascript){
var view = PlacesUIUtils.getViewForNode(document.popupNode);
var node = view.selectedNode; // single の場合
var nodes = view.selectedNodes; // multiple の場合}
PlacesUIUtils.getViewForNode が超便利。
view は tree要素。places/tree.xml にプロパティやメソッドが定義されてる。
node は[[nsINavHistoryResultNode>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsINavHistoryResultNode]]。nodes はその配列。
-[[SCRAPBLOG : Places ビューと nsIPlacesView インタフェース>http://www.xuldev.org/blog/?p=179]]
-[[Displaying Places information using views | MDN>https://developer.mozilla.org/ja/docs/Displaying_Places_information_using_views]]
#contents()
*Places のコンテキストメニューに項目追加
#highlight(XML){
<menupopup id="placesContext">
<menuitem label="サンプル"
oncommand="function();"
selectiontype="single"
selection="bookmark|folder"
insertbefore="placesContext_openSeparator"/>
</menupopup>}
placesContext は chrome://browser/content/places/placesOverlay.xulに書かれているので、それを overlay してやればいい。
-[[SCRAPBLOG : Places 右クリックメニューへのメニュー項目追加>http://www.xuldev.org/blog/?p=178]]
**表示非表示の切り替え
onpopupshowing なんて使わなくても属性を設定するだけで簡単に表示の切り替えが出来る。places/controller.js に実装されている。
|属性|説明|h
|selectiontype|single/multiple のいずれか。単数/複数選択で表示|
|selection|下記の表の値。"|"で複数指定可能。条件が合えば表示|
|forcehideselection|下記の表の値。"|"で複数指定可能。条件が合えば隠す|
|hideifnoinsetionpoint|値はtrue固定。挿入する場所が無いと隠す。例えばクエリフォルダ内にアイテムの新規作成とか|
selection や forcehideselection に設定できる値のリスト
|値|説明|h
|query|[[nsINavHistoryResultNode>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsINavHistoryResultNode]] で RESULT_TYPE_QUERY|
| host|[[nsINavHistoryQueryOptions>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsINavHistoryQueryOptions#Result_type_constants]] で RESULTS_AS_SITE_QUERY|
| day|これは RESULTS_AS_DATE_QUER か RESULTS_AS_DATE_SITE_QUERY|
|dynamiccontainer|RESULT_TYPE_DYNAMIC_CONTAINER|
|folder|フォルダ|
|separator|セパレーター|
|link|RESULT_TYPE_URI、RESULT_TYPE_VISIT、RESULT_TYPE_FULL_VISIT|
| bookmark|ブックマーク|
| microsummary||
| tagChild||
| livemarkChild||
*右クリックメニューから、選択されてるノードを取得する
#highlight(javascript){
var view = PlacesUIUtils.getViewForNode(document.popupNode);
var node = view.selectedNode; // single の場合
var nodes = view.selectedNodes; // multiple の場合}
PlacesUIUtils.getViewForNode が超便利。
view は tree要素。places/tree.xml にプロパティやメソッドが定義されてる。
node は[[nsINavHistoryResultNode>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsINavHistoryResultNode]]。nodes はその配列。
-[[SCRAPBLOG : Places ビューと nsIPlacesView インタフェース>http://www.xuldev.org/blog/?p=179]]
-[[Displaying Places information using views | MDN>https://developer.mozilla.org/ja/docs/Displaying_Places_information_using_views]]