GM.setValue: Difference between revisions
m clarify that it refers to the script's name |
m Mentioned limit of integers (a real-life scenario is when the developer attempts to save timestamps as in http://stackoverflow.com/q/15043910/938089) |
||
Line 9: | Line 9: | ||
(For appropriate values of <code>namespace</code>, <code>script_name</code> and <code>value_name</code>.) | (For appropriate values of <code>namespace</code>, <code>script_name</code> and <code>value_name</code>.) | ||
The Firefox preference store is not designed for storing large amounts of data. There are no hard limits, but very large amounts of data may cause Firefox to consume more memory and/or run more slowly. | The Firefox preference store is not designed for storing large amounts of data. There are no hard limits, but very large amounts of data may cause Firefox to consume more memory and/or run more slowly. <ref>Please see [http://groups.google.com/group/greasemonkey-users/t/ca5a0dfac5c5998b this mailing list thread] for details.</ref> | ||
<sup>[ | Integer preferences must be in the range -2<sup>31</sup>-1 to 2<sup>31</sup>-1. Numbers outside this range can be stored by using <code>.toString()</code> before <code>GM_setValue</code>. <ref>"Note: Preferences cannot store non-integer numbers or numbers outside the signed 32-bit range -(2^31-1) to 2^31-1, If you have such a number, store it as a string by calling toString() on the number before passing it to this method" [https://github.com/mozilla/mozilla-central/blob/master/services/common/preferences.js#L86|Firefox's source code on Github]</ref> | ||
Compatibility: [[Version_history#0.3_beta|Greasemonkey 0.3b+]] | Compatibility: [[Version_history#0.3_beta|Greasemonkey 0.3b+]] | ||
Line 43: | Line 43: | ||
* [[:Category:Coding Tips:Persistence]] | * [[:Category:Coding Tips:Persistence]] | ||
== | == References == | ||
< | <references/> | ||
[[Category:API_Reference|S]] | [[Category:API_Reference|S]] |
Revision as of 16:28, 24 February 2013
Description
This method allows user script authors to persist simple values across page-loads.
Strings, booleans, and integers are currently the only allowed data types.
Values are saved in the Firefox preferences back end and can be manually inspected or changed by typing about:config in the address bar and searching for the preference name "greasemonkey.scriptvals.namespace/script_name.value_name
".
(For appropriate values of namespace
, script_name
and value_name
.)
The Firefox preference store is not designed for storing large amounts of data. There are no hard limits, but very large amounts of data may cause Firefox to consume more memory and/or run more slowly. [1]
Integer preferences must be in the range -231-1 to 231-1. Numbers outside this range can be stored by using .toString()
before GM_setValue
. [2]
Compatibility: Greasemonkey 0.3b+
Syntax
function GM_setValue( name, value )
Arguments
name
String
The unique (within this script) name for this value. Should be restricted to valid Javascript identifier characters.value
String
,Integer
orBoolean
Any valid value of these types. Any other type may cause undefined behavior, including crashes.
Returns
undefined
Examples
Set the name foo to hold the value bar:
GM_setValue("foo", "bar");
See Also
References
- ↑ Please see this mailing list thread for details.
- ↑ "Note: Preferences cannot store non-integer numbers or numbers outside the signed 32-bit range -(2^31-1) to 2^31-1, If you have such a number, store it as a string by calling toString() on the number before passing it to this method" source code on Github