[英]Access simple-prefs from xul window
我想从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]
,但[xpconnect wrapped nsISupports]
()返回[xpconnect wrapped nsISupports]
而不是实际[xpconnect wrapped nsISupports]
。
那么,如何从xul对话框访问simple-prefs模块?
我建议从XUL窗口中的脚本标签使用加载程序。
像这样:
<script type='application/javascript' src='resource://gre/modules/toolkit/loader.js'></script>
然后,您可以只在XUL窗口中require('simple-prefs')
,而不是尝试将其传递过来。
在sdk低级文档中查看有关加载程序的更多信息: https : //addons.mozilla.org/zh-CN/developers/docs/sdk/latest/modules/toolkit/loader.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.