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); localStorage.setItem(name, value);
return GM_setValue(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) { "delete": function(name) {
return localStorage.removeItem($.NAMESPACE + name); return localStorage.removeItem($.NAMESPACE + name);

View File

@ -411,6 +411,20 @@ $.extend $,
# for `storage` events # for `storage` events
localStorage.setItem name, value localStorage.setItem name, value
GM_setValue 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 else
delete: (name) -> delete: (name) ->
localStorage.removeItem $.NAMESPACE + name localStorage.removeItem $.NAMESPACE + name