55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
define(function (require) {
|
|
var EventObject = require("./EventObject.js");
|
|
var extension = require("./extensionPort.js");
|
|
|
|
var Storage = function () {
|
|
var __ = this;
|
|
var st = window.storage || {};
|
|
|
|
EventObject.apply(this, Array.prototype.slice.call(arguments));
|
|
|
|
this.get = function (key) {
|
|
return st[key] || "";
|
|
};
|
|
this.put = function (key, value) {
|
|
if (typeof (value) !== 'string') {
|
|
value = JSON.stringify(value);
|
|
}
|
|
st[key] = value + '';
|
|
|
|
var messageDetail = {};
|
|
messageDetail[key] = value;
|
|
extension.sendMessage({ action: "setStorage", detail: messageDetail });
|
|
};
|
|
this.remove = function (key) {
|
|
delete st[key];
|
|
|
|
var messageDetail = {};
|
|
messageDetail[key] = null;
|
|
extension.sendMessage({ action: "setStorage", detail: messageDetail });
|
|
};
|
|
this.obj = function (key) {
|
|
var value = __.get(key);
|
|
if (!value)
|
|
return null;
|
|
|
|
return JSON.parse(value);
|
|
};
|
|
this.clear = function () {
|
|
var keys = _.keys(st);
|
|
_.each(keys, function (key) {
|
|
if (!key || key.indexOf("12306_") !== 0)
|
|
return;
|
|
|
|
__.remove(key);
|
|
});
|
|
};
|
|
};
|
|
Storage.prototype = Object.create(EventObject);
|
|
Storage.constructor = Storage;
|
|
|
|
var instance = new Storage();
|
|
window.st = instance;
|
|
return instance;
|
|
});
|