2013-11-20 24 views
0

我想第一次給Firefox編寫擴展代碼,並且我的prefmanager出了問題。Javascript:Firefox prefmanager

var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); 
var updateintervall = prefManager.getCharPref("extensions.traffic.updateintervall"); 

第二行Javascript代碼後,我的擴展似乎停止工作。以下代碼行將不會再被執行......我做錯了什麼?

+0

它已經有一段時間了,但那對我有用。這可能是對prefManager.getCharPref的調用拋出異常。在你的代碼周圍放一個try/catch,並檢查異常告訴你什麼。 – hagbard

回答

0

當使用get*()函數時,nsIPref* API預計首選項已經存在。當試圖得到一個不會拋出異常的首選項時。 此外,如果您嘗試閱讀例如API,則可能會拋出API。現有的數字首選項作爲字符串。 你可以嘗試/捕捉異常。

您可能需要將default preferences添加到基於XUL的加載項中,而不必嘗試/捕獲不存在的首選項。

SDK用戶應該看看simple-prefs和/或preferences/service API。

另外:這幾天你會想要使用緩存Services.prefs訪問nsIPref*

相關問題