About Config Preferences And Js
Solution 1:
Yes, you can.
First, you need to know that Mozilla uses the XPCOM interfaces for the preferences system.
Three used interfaces are nsIPrefService, nsIPrefBranch and nsIPrefBranch2.
The preferences service is instantiated in the same way you instantiate any XPCOM service.
Two examples to make it clear:
// Get the root branchvar prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);
.
// Get the "extensions.myext." branchvar prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
prefs = prefs.getBranch("extensions.myext.");
And there are 3 types of preferences, they're string, integer and boolean. There are six methods in nsIPrefBranch that read and write preferences: getBoolPref(), setBoolPref(), getCharPref(), setCharPref(), getIntPref() and setIntPref().
More examples on that:
// Get the "accessibility." branchvar prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService).getBranch("accessibility.");
// prefs is an nsIPrefBranch.// Look in the above section for examples of getting one.varvalue = prefs.getBoolPref("typeaheadfind"); // get a pref (accessibility.typeaheadfind)
prefs.setBoolPref("typeaheadfind", !value); // set a pref (accessibility.typeaheadfind)
You can also use complex types. By using nsISupportsString, that is used to handle strings in preferences, so, use this when the preference value may contain non-ASCII characters.
Example:
// prefs is an nsIPrefBranch// Example 1: getting Unicode valuevar value = prefs.getComplexValue("preference.with.non.ascii.value",
Components.interfaces.nsISupportsString).data;
// Example 2: setting Unicode valuevar str = Components.classes["@mozilla.org/supports-string;1"]
.createInstance(Components.interfaces.nsISupportsString);
str.data = "some non-ascii text";
prefs.setComplexValue("preference.with.non.ascii.value",
Components.interfaces.nsISupportsString, str);
I hope you solve your doubt with this.
Post a Comment for "About Config Preferences And Js"