利用window.name实现windowStorage代码分享

  

复制代码 代码如下:

  //key:value|key:value

  var windowStorage = {

  _inited: false,

  _data: {},

  init: function(str) {

  var tmpData, key, value, kv;

  this._inited = true;

  if (str && typeof str == 'string') {

  tmpData = str.split('|');

  for (var i = 0, len = tmpData.length; i < len; i++) {

  kv = tmpData[i].split(':');

  key = unescape(kv[0]);

  value = unescape(kv[1]);

  this._data[key] = value;

  }

  } else if (typeof str == 'object') {

  this._data = str;

  }

  },

  read: function(key) {

  if (!this._inited) {

  throw new Error('Please initialize before reading.');

  }

  return this._data[key];

  },

  write: function(key, value) {

  var str = [];

  if (!this._inited) {

  throw new Error('Please initialize before writing.');

  }

  this._data[key] = value;

  for (var k in this._data) {

  str.push(escape(k) + ':' + escape(this._data[k]));

  }

  window.name = str.join('|');

  }

  };