0

XUL設定ダイアログからsimple-prefsモジュールにアクセスしたい。私のコードは次のようになります。

var WINDOW = Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci.nsIWindowWatcher);
var mainWindow = MEDIATOR.getMostRecentWindow(null);

var pref = require("simple-prefs");
var win = WINDOW.openWindow(mainWindow, "chrome://myextension/content/settings.xul", "aboutMyExtension", "chrome,centerscreen,modal,dependant,dialog", pref);

上に示したように、私はxulウィンドウへの引数として単純な設定参照を与えます。xulページで、simple-prefsリファレンスを取得するために次のことを試みます。

<script type="application/x-javascript" src="chrome://global/content/XPCNativeWrapper.js"/>
... 
XPCNativeWrapper.unwrap(window.arguments[0])

window.arguments[0]はですが、unwrap()は、実際にアンラップするので[xpconnect wrapped nsISupports]はなく、を返します。[xpconnect wrapped nsISupports]

では、xulダイアログからsimple-prefsモジュールにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

XULウィンドウ内のスクリプトタグからローダーを使用することをお勧めします。

このような:

<script type='application/javascript' src='resource://gre/modules/toolkit/loader.js'></script>

require('simple-prefs')そうすれば、XULウィンドウを渡そうとする代わりに、XULウィンドウに入れることができます。

ローダーの詳細については、sdkの低レベルのドキュメントをご覧ください: https ://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/toolkit/loader.html

于 2013-01-05T00:24:36.963 に答える