2010-08-21 74 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