storage : 跨域的localstorage

介绍

可跨域取localstorage,兼容原生的localstorage接口(length除外)

使用方法

 
1.如果只调用本域的localstorage内容,则接口与原生localstorage的一致
2.假设在A域中调用B域中的内容,需要在B域中部署代理页面,
  下载代理页面 :http://style.c.aliimg.com/fdevlib/js/lofty-mobile/util/storage/1.0/proxy/localstorage.html
  保存页面源代码放到B域的根目录的proxy文件夹下,取名为 localstorage.html,例如B域为s.1688.com 则代理页面的url为
  http://s.1688.com/proxy/localstorage.html

define(['util/storage/1.0'], function(localStorage){
	localStorage.getItem(key);
	
	localStorage.getItem(key,{
		domain:B,
		success:function(){}
	});
});

特别注意

 
1.安全问题考虑
  如果要部署代理页面在自己的域中,就意味着该域中localstorage中的内容都是公开的,其他网站可以任意获取到,
  若不想泄露这些数据,则后端需要配合过滤该代理页面的请求,根据请求中的refer字段,判断来源,可用白名单控制	
2.当跨域取数据时为异步接口,需要提供回调方法

配置参数

配置参数 参数类型/可选值 参数默认值 作用说明
domain string "" 跨域时必选,设置目标的域
success function 跨域操作成功后的回调方法:可选

公共方法

方法名称 入参说明(参数中的opt的解释参见上面的"配置参数") 返回值 作用说明
getItem(key,opt) key:存储的键 键对应的值 当没有opt参数时,则调用原生的接口
getItem(key,opt) key:存储的键 键对应的值 当没有opt参数时,则调用原生的接口
setItem(key,val,opt) key:存储的键
val:存储的值
/ 当没有opt参数时,则调用原生的接口
clear(opt) / / 当没有opt参数时,清空本域中的localstorage中的内容,若设置了opt,则清空对应的域中的localstorage
key(index,opt) index:获取对应域中localstorage第index个的key的名字 键的名字 当没有opt参数时,则调用原生的接口
length(opt) / 获取对应域中localstorage中存储的键值对的个数 原生的length是个属性,此处不兼容
removeItem(key,opt) key:要删除的键 / 当没有opt参数时,则调用原生的接口