2010-08-21 73 views
0

我想弄清楚如何在XUL文件中使用首选项(可以通过转到about:config进行访问)。我将会有一些开发人员在这方面开展工作,我们都配置了不同的“本地”主机。所以我希望通过使“example.local”部分来自偏好设置(字符串)来让每个人都更容易。这样我可以使用example.com作为默认设置,每个开发人员只需将其编辑为任何主机文件所设置的值即可。在XUL中使用偏好设置

<?xml version="1.0" encoding="UTF-8"?> 
<overlay id="my-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    <script src="http://example.local/some/script.js"/> 
</overlay> 

我知道如何设置的默认,以及如何使用JavaScript访问它,但高于这个特殊的XUL是一个装载的JavaScript,我需要它来从服务器的负载。

非常感谢您的帮助!

Luis

回答

1

您需要使用所需的默认值创建prefs.js文件。

查看documentation here

然后,您可以参考使用nsiPrefService偏好,这样,如果它是存储为mybranch.mybooleanpreference一个布尔值:

var prefs = Components.classes["@mozilla.org/preferences-service;1"] 
        .getService(Components.interfaces.nsIPrefService).getBranch("mybranch."); 

var value = prefs.getBoolPref("mybooleanpreference"); 

Preference code snippet here,或

+0

谢谢!这对设置默认首选项很有帮助,但是如何使用XUL中的值?效果可以让我做这样的事情: <?xml version =“1.0”encoding =“UTF-8”?>

0

这听起来像你想做的事是这样的:

在您的XUL文件中加入:

<body onload="return myFunc();"> 

在JavaScript中增加一个功能:

function myFunc() { 
var prefs = Components.classes["@mozilla.org/preferences-service;1"] 
        .getService(Components.interfaces.nsIPrefService).getBranch("mybranch."); 
    var src = "http://"+prefs.getStringPref("mystringpreference")+"/some/script.js"; 
    var script = document.getElementsByTagName("script")[0]; 

    script.setAttribute("src", src); 
} 

确保您添加脚本包括JavaScript文件为好,这样的:

<script src="chrome://myextension/content/myjavascript.js 

希望这有助于!

+0

有什么帮助吗? – Purge 2010-09-17 17:50:44