― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2012年6月15日(金) 22:30 
オフライン

登録日時: 2012年3月21日(水) 11:15
記事: 96
お住まい: 京都市
Mozilla Add-on Builderの初心者です。
少しずつ勉強して GUIを持たない拡張機能を作れるようになってきました。

汎用的に利用する関数群を Private Libraryとしてまとめましたが、
Private Addonで参照させる方法がわかりません。

操作方法あるいは設定方法、ドキュメントの場所などを教えていただけると助かります。

P.S.
Mozilla Add-on Builderの基本的な操作方法をまとめてみました。
http://backy0175.at.webry.info/201206/article_8.html

_________________
B級グルメ好きなバイク乗り、主にPicasaとGmailのヘルプフォーラムに出没してます。

公開している Firefoxの拡張機能はこちら。
https://addons.mozilla.org/ja/firefox/user/6110569/


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2012年6月21日(木) 10:32 
オフライン

登録日時: 2012年3月21日(水) 11:15
記事: 96
お住まい: 京都市
返信が付きませんし、不具合のようなので bugzillaに報告しました。

https://bugzilla.mozilla.org/show_bug.cgi?id=766809


尚、暫定的な対処として次のようにやってます。

1. 一時的に Public Libraryに変更する
2. Add-on Builderの Editorで ライブラリを追加する
3. Public Libraryを Private Libraryに戻す

※ 一度ライブラリを追加できると、Private Libraryに戻しても適切に Libraryを参照できてます。

_________________
B級グルメ好きなバイク乗り、主にPicasaとGmailのヘルプフォーラムに出没してます。

公開している Firefoxの拡張機能はこちら。
https://addons.mozilla.org/ja/firefox/user/6110569/


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2014年3月07日(金) 13:09 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 656
お住まい: 太陽系、地球、日本、ふてニャン県
Bug 766809 は、Bug 777352 のDUPになっていますね。
で、https://builder.addons.mozilla.org/ を見ると、
  The builder is being retired and is in read-only mode.
と書いてありました。

何を目的にしているのかわからないですが、自分のコードライブラリーを自分の複数のアドオンで共有したい、という場合には、「JavaScript Code Module」 (参照:「JavaScript code modules 」、「JavaScript Object Management 」)が使えます。

コード:
1. アドオンのchrome.manifestに以下を記述
resource アプリ名 modules/
2. アドオン内のmodules/ABCDEF.jsmに以下を記述
var EXPORTED_SYMBOLS = [ "共有する変数名" ] ;
var 共有する変数名 = {};
あとは、普通のJavaScrptのコードで、
共有する変数名["プロパティorメソッド名"] = ...;
と、 オブジェクトプロパティやオブジェクトメソッドを定義。
この中で、
Components.utils.import("resource://アプリ名/子供のファイル名.jsm",共有する変数名["プロパティorメソッド名"] );
を使えば、
共有する変数名["プロパティorメソッド名"] [子供が作り出す変数名]
というオブジェクトが作られますから、階層化やjsmファイルの分割は簡単だし、子供の部分だけを単独でロードすることも可能です。
EXPORTED_SYMBOLSという決められた名前の変数は、単なるJavaScriptのArray Objectですから、
var EXPORTED_SYMBOLS = [ "共有する変数名A" , ... "共有する変数名Z"] ;
と、複数定義することも可。
3. あとは、他のfunctionの中で、
Components.utils.import("resource://アプリ名/ABCDEF.jsm.jsm");
をだすと、「共有する変数名」という変数が作られますから、
共有する変数名.そのメソッド()、共有する変数名["プロパティ名"]、などで、参照・変更ができます。
なお、XULオーバーレイでロードする.jsファイル内のコードで参照する場合は、
var 自分のグローバル変数={};
Components.utils.import("resource://アプリ名/ABCDEF.jsm.jsm",自分のグローバル変数);
というようにして、「自分のグローバル変数(==window.グローバル変数)」の中にロードしないと、
そのXULウィンドウに「window.共有する変数名」というグローバルオブジェクトが作られてしまいますから、ご注意を。

あるアドオンのchrome.manifest内の「resource アプリ名」は、ユニークであるべきはずなので、
他のアドオンからも、
Components.utils.import("resource://アプリ名/ABCDEF.jsm.jsm");
で、「共有する変数名」(==Object)を参照・変更できると思いますが、
他のアドオンのchrome.manifest内で、何らかの指定が必要かもしれません。

_________________
Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0 SeaMonkey/2.19


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2014年3月07日(金) 22:21 
オフライン

登録日時: 2012年3月21日(水) 11:15
記事: 96
お住まい: 京都市
WADAさん、返信ありがとうございます。

返信してくださった内容は Overlay Extensions(XUL)に関する情報なので、残念ながら Add-on Builderで作成する拡張機能には適用できないんです。
もっとも、適用できたとしても Add-on Builderはサービスを終了するのでこの質問自体が無意味になってしまいましたが、、、

_________________
B級グルメ好きなバイク乗り、主にPicasaとGmailのヘルプフォーラムに出没してます。

公開している Firefoxの拡張機能はこちら。
https://addons.mozilla.org/ja/firefox/user/6110569/
Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0

通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean