我想从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);
如上所示,我将简单的prefs引用作为xul窗口的参数。 在xul页面中,我尝试以下方法来获取simple-prefs引用。
<script type="application/x-javascript" src="chrome://global/content/XPCNativeWrapper.js"/>
...
XPCNativeWrapper.unwrap(window.arguments[0])
window.arguments[0]
是[xpconnect wrapped nsISupports]
,但是unwrap()返回[xpconnect wrapped nsISupports]
而不是实际展开它。
那么,如何从xul对话框中访问simple-prefs模块?
答案 0 :(得分:0)
我建议在XUL窗口中使用脚本标记中的加载程序。
像这样:
<script type='application/javascript' src='resource://gre/modules/toolkit/loader.js'></script>
然后你可以在你的XUL窗口中require('simple-prefs')
而不是试图传递它。
在sdk低级文档中查看有关加载程序的更多信息: https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/toolkit/loader.html