繁体   English   中英

从xul窗口访问简单偏好

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM