diff --git a/4chan_x.user.js b/4chan_x.user.js index 013cae92d..087ff5879 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -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); diff --git a/script.coffee b/script.coffee index 96a2d61b7..a8e1726f6 100644 --- a/script.coffee +++ b/script.coffee @@ -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