Light12306/Web12306/js/platform/storage.js
2015-03-13 19:25:08 +08:00

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;
});