Fix Opera "$.get is not defined"

This commit is contained in:
Zixaphir 2013-04-25 23:53:35 -07:00
parent 0b861a3cbb
commit 7cd2db46e3
2 changed files with 85 additions and 82 deletions

View File

@ -755,62 +755,64 @@
};
(function() {
var cb, items, key, keys, scriptStorage, _i, _len;
var scriptStorage;
scriptStorage = opera.scriptStorage;
$["delete"] = function(keys) {};
if (!(keys instanceof Array)) {
keys = [keys];
}
for (_i = 0, _len = keys.length; _i < _len; _i++) {
key = keys[_i];
key = g.NAMESPACE + key;
localStorage.removeItem(key);
delete scriptStorage[key];
}
return;
$.get = function(key, val, cb) {};
if (typeof cb === 'function') {
items = $.item(key, val);
} else {
items = key;
cb = val;
}
return $.queueTask(function() {
var val;
$["delete"] = function(keys) {
var key, _i, _len;
for (key in items) {
if (val = scriptStorage[g.NAMESPACE + key]) {
items[key] = JSON.parse(val);
if (!(keys instanceof Array)) {
keys = [keys];
}
for (_i = 0, _len = keys.length; _i < _len; _i++) {
key = keys[_i];
key = g.NAMESPACE + key;
localStorage.removeItem(key);
delete scriptStorage[key];
}
};
$.get = function(key, val, cb) {
var items;
if (typeof cb === 'function') {
items = $.item(key, val);
} else {
items = key;
cb = val;
}
return $.queueTask(function() {
for (key in items) {
if (val = scriptStorage[g.NAMESPACE + key]) {
items[key] = JSON.parse(val);
}
}
}
return cb(items);
});
})();
$.set = (function() {
var set;
set = function(key, val) {
key = g.NAMESPACE + key;
val = JSON.stringify(val);
if (key in $.syncing) {
localStorage.setItem(key, val);
}
return scriptStorage[key] = val;
return cb(items);
});
};
return function(keys, val) {
var key;
$.set = (function() {
var set;
if (typeof keys === 'string') {
set(keys, val);
return;
}
for (key in keys) {
val = keys[key];
set(key, val);
}
};
set = function(key, val) {
key = g.NAMESPACE + key;
val = JSON.stringify(val);
if (key in $.syncing) {
localStorage.setItem(key, val);
}
return scriptStorage[key] = val;
};
return function(keys, val) {
var key;
if (typeof keys === 'string') {
set(keys, val);
return;
}
for (key in keys) {
val = keys[key];
set(key, val);
}
};
})();
})();
$$ = function(selector, root) {

View File

@ -341,39 +341,40 @@ do ->
# to the object.
{scriptStorage} = opera
$.delete = (keys) ->
unless keys instanceof Array
keys = [keys]
for key in keys
key = g.NAMESPACE + key
localStorage.removeItem key
delete scriptStorage[key]
return
$.get = (key, val, cb) ->
if typeof cb is 'function'
items = $.item key, val
else
items = key
cb = val
$.queueTask ->
for key of items
if val = scriptStorage[g.NAMESPACE + key]
items[key] = JSON.parse val
cb items
$.set = do ->
set = (key, val) ->
key = g.NAMESPACE + key
val = JSON.stringify val
if key of $.syncing
# for `storage` events
localStorage.setItem key, val
scriptStorage[key] = val
(keys, val) ->
if typeof keys is 'string'
set keys, val
return
for key, val of keys
set key, val
unless keys instanceof Array
keys = [keys]
for key in keys
key = g.NAMESPACE + key
localStorage.removeItem key
delete scriptStorage[key]
return
$.get = (key, val, cb) ->
if typeof cb is 'function'
items = $.item key, val
else
items = key
cb = val
$.queueTask ->
for key of items
if val = scriptStorage[g.NAMESPACE + key]
items[key] = JSON.parse val
cb items
$.set = do ->
set = (key, val) ->
key = g.NAMESPACE + key
val = JSON.stringify val
if key of $.syncing
# for `storage` events
localStorage.setItem key, val
scriptStorage[key] = val
(keys, val) ->
if typeof keys is 'string'
set keys, val
return
for key, val of keys
set key, val
return
return
<% } else { %>
# http://wiki.greasespot.net/Main_Page