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



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - Add-on Builderで Private Libraryを参照する方法を教えていただけないでしょうか?
作成者 メッセージ
  記事の件名:  Re: Add-on Builderで Private Libraryを参照する方法を教えていただけないでしょうか?  引用付きで返信する
WADAさん、返信ありがとうございます。

返信してくださった内容は Overlay Extensions(XUL)に関する情報なので、残念ながら Add-on Builderで作成する拡張機能には適用できないんです。
もっとも、適用できたとしても Add-on Builderはサービスを終了するのでこの質問自体が無意味になってしまいましたが、、、
投稿記事 Posted: 2014年3月07日(金) 22:21
  記事の件名:  Re: Add-on Builderで Private Libraryを参照する方法を教えていただけないでしょうか?  引用付きで返信する
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内で、何らかの指定が必要かもしれません。
投稿記事 Posted: 2014年3月07日(金) 13:09
  記事の件名:  Re: Add-on Builderで Private Libraryを参照する方法を教えていただけないでしょうか?  引用付きで返信する
返信が付きませんし、不具合のようなので 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を参照できてます。
投稿記事 Posted: 2012年6月21日(木) 10:32
  記事の件名:  Add-on Builderで Private Libraryを参照する方法を教えていただけないでしょうか?  引用付きで返信する
Mozilla Add-on Builderの初心者です。
少しずつ勉強して GUIを持たない拡張機能を作れるようになってきました。

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

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

P.S.
Mozilla Add-on Builderの基本的な操作方法をまとめてみました。
http://backy0175.at.webry.info/201206/article_8.html
投稿記事 Posted: 2012年6月15日(金) 22:30

All times are UTC + 9 hours


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