Fix script storage on Opera.
This commit is contained in:
parent
6e11bfd8b5
commit
67c66a2d4c
@ -884,58 +884,62 @@
|
||||
}
|
||||
});
|
||||
|
||||
$.extend($, typeof GM_deleteValue !== "undefined" && GM_deleteValue !== null ? {
|
||||
"delete": function(name) {
|
||||
if (typeof GM_deleteValue !== "undefined" && GM_deleteValue !== null) {
|
||||
$["delete"] = function(name) {
|
||||
return GM_deleteValue(g.NAMESPACE + name);
|
||||
},
|
||||
get: function(name, defaultValue) {
|
||||
};
|
||||
$.get = function(name, defaultValue) {
|
||||
var value;
|
||||
if (value = GM_getValue(g.NAMESPACE + name)) {
|
||||
return JSON.parse(value);
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
},
|
||||
set: function(name, value) {
|
||||
};
|
||||
$.set = function(name, value) {
|
||||
name = g.NAMESPACE + name;
|
||||
value = JSON.stringify(value);
|
||||
localStorage.setItem(name, value);
|
||||
return GM_setValue(name, value);
|
||||
}
|
||||
} : window.opera ? {
|
||||
"delete": function(name) {
|
||||
return delete opera.scriptStorage[g.NAMESPACE + name];
|
||||
},
|
||||
get: function(name, defaultValue) {
|
||||
var value;
|
||||
if (value = opera.scriptStorage[g.NAMESPACE + name]) {
|
||||
return JSON.parse(value);
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
},
|
||||
set: function(name, value) {
|
||||
name = g.NAMESPACE + name;
|
||||
value = JSON.stringify(value);
|
||||
localStorage.setItem(name, value);
|
||||
return opera.scriptStorage[name] = value;
|
||||
}
|
||||
} : {
|
||||
"delete": function(name) {
|
||||
};
|
||||
} else if (window.opera) {
|
||||
(function() {
|
||||
var scriptStorage;
|
||||
scriptStorage = opera.scriptStorage;
|
||||
$["delete"] = function(name) {
|
||||
return delete scriptStorage[g.NAMESPACE + name];
|
||||
};
|
||||
$.get = function(name, defaultValue) {
|
||||
var value;
|
||||
if (value = scriptStorage[g.NAMESPACE + name]) {
|
||||
return JSON.parse(value);
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
};
|
||||
return $.set = function(name, value) {
|
||||
name = g.NAMESPACE + name;
|
||||
value = JSON.stringify(value);
|
||||
localStorage.setItem(name, value);
|
||||
return scriptStorage[name] = value;
|
||||
};
|
||||
})();
|
||||
} else {
|
||||
$["delete"] = function(name) {
|
||||
return localStorage.removeItem(g.NAMESPACE + name);
|
||||
},
|
||||
get: function(name, defaultValue) {
|
||||
};
|
||||
$.get = function(name, defaultValue) {
|
||||
var value;
|
||||
if (value = localStorage.getItem(g.NAMESPACE + name)) {
|
||||
return JSON.parse(value);
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
},
|
||||
set: function(name, value) {
|
||||
};
|
||||
$.set = function(name, value) {
|
||||
return localStorage.setItem(g.NAMESPACE + name, JSON.stringify(value));
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
Polyfill = {
|
||||
init: function() {
|
||||
|
||||
73
lib/$.coffee
73
lib/$.coffee
@ -192,42 +192,51 @@ $.extend $,
|
||||
Math.round size
|
||||
"#{size} #{['B', 'KB', 'MB', 'GB'][unit]}"
|
||||
|
||||
$.extend $,
|
||||
if GM_deleteValue?
|
||||
delete: (name) ->
|
||||
GM_deleteValue g.NAMESPACE + name
|
||||
get: (name, defaultValue) ->
|
||||
if value = GM_getValue g.NAMESPACE + name
|
||||
if GM_deleteValue?
|
||||
$.delete = (name) ->
|
||||
GM_deleteValue g.NAMESPACE + name
|
||||
$.get = (name, defaultValue) ->
|
||||
if value = GM_getValue g.NAMESPACE + name
|
||||
JSON.parse value
|
||||
else
|
||||
defaultValue
|
||||
$.set = (name, value) ->
|
||||
name = g.NAMESPACE + name
|
||||
value = JSON.stringify value
|
||||
# for `storage` events
|
||||
localStorage.setItem name, value
|
||||
GM_setValue name, value
|
||||
else if window.opera
|
||||
(->
|
||||
# http://www.opera.com/docs/userjs/specs/#scriptstorage
|
||||
# http://www.opera.com/docs/userjs/using/#securepages
|
||||
# >The scriptStorage object is available only during
|
||||
# the main User JavaScript thread, being therefore
|
||||
# accessible only in the main body of the user script.
|
||||
# To access the storage object later, keep a reference
|
||||
# to the object.
|
||||
{scriptStorage} = opera
|
||||
$.delete = (name) ->
|
||||
delete scriptStorage[g.NAMESPACE + name]
|
||||
$.get = (name, defaultValue) ->
|
||||
if value = scriptStorage[g.NAMESPACE + name]
|
||||
JSON.parse value
|
||||
else
|
||||
defaultValue
|
||||
set: (name, value) ->
|
||||
$.set = (name, value) ->
|
||||
name = g.NAMESPACE + name
|
||||
value = JSON.stringify value
|
||||
# for `storage` events
|
||||
localStorage.setItem name, value
|
||||
GM_setValue name, value
|
||||
else if window.opera
|
||||
delete: (name)->
|
||||
delete opera.scriptStorage[g.NAMESPACE + name]
|
||||
get: (name, defaultValue) ->
|
||||
if value = opera.scriptStorage[g.NAMESPACE + name]
|
||||
JSON.parse value
|
||||
else
|
||||
defaultValue
|
||||
set: (name, value) ->
|
||||
name = g.NAMESPACE + name
|
||||
value = JSON.stringify value
|
||||
# for `storage` events
|
||||
localStorage.setItem name, value
|
||||
opera.scriptStorage[name] = value
|
||||
else
|
||||
delete: (name) ->
|
||||
localStorage.removeItem g.NAMESPACE + name
|
||||
get: (name, defaultValue) ->
|
||||
if value = localStorage.getItem g.NAMESPACE + name
|
||||
JSON.parse value
|
||||
else
|
||||
defaultValue
|
||||
set: (name, value) ->
|
||||
localStorage.setItem g.NAMESPACE + name, JSON.stringify value
|
||||
scriptStorage[name] = value
|
||||
)()
|
||||
else
|
||||
$.delete = (name) ->
|
||||
localStorage.removeItem g.NAMESPACE + name
|
||||
$.get = (name, defaultValue) ->
|
||||
if value = localStorage.getItem g.NAMESPACE + name
|
||||
JSON.parse value
|
||||
else
|
||||
defaultValue
|
||||
$.set = (name, value) ->
|
||||
localStorage.setItem g.NAMESPACE + name, JSON.stringify value
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user