Add support for Opera's scriptStorage with $.delete, $.get and $.set. Close #503

This commit is contained in:
Nicolas Stepien 2012-08-25 03:25:58 +02:00
parent e9f3c0e49b
commit f20a7bd78c
2 changed files with 32 additions and 0 deletions

View File

@ -527,6 +527,24 @@
localStorage.setItem(name, value);
return GM_setValue(name, value);
}
} : window.opera ? {
"delete": function(name) {
return delete opera.scriptStorage[$.NAMESPACE + name];
},
get: function(name, defaultValue) {
var value;
if (value = opera.scriptStorage[$.NAMESPACE + name]) {
return JSON.parse(value);
} else {
return defaultValue;
}
},
set: function(name, value) {
name = $.NAMESPACE + name;
value = JSON.stringify(value);
localStorage.setItem(name, value);
return opera.scriptStorage[name] = value;
}
} : {
"delete": function(name) {
return localStorage.removeItem($.NAMESPACE + name);

View File

@ -411,6 +411,20 @@ $.extend $,
# for `storage` events
localStorage.setItem name, value
GM_setValue name, value
else if window.opera
delete: (name)->
delete opera.scriptStorage[$.NAMESPACE + name]
get: (name, defaultValue) ->
if value = opera.scriptStorage[$.NAMESPACE + name]
JSON.parse value
else
defaultValue
set: (name, value) ->
name = $.NAMESPACE + name
value = JSON.stringify value
# for `storage` events
localStorage.setItem name, value
opera.scriptStorage[name] = value
else
delete: (name) ->
localStorage.removeItem $.NAMESPACE + name