Storage
提供LocalStorage的本地化存储方案,支持IE(通过IE特性userData)。
Install / Use
/learn @qiqiboy/StorageREADME
storage
提供LocalStorage的本地化存储方案,支持IE(通过IE特性userData)。
注意:IE6 IE7等是通过userData来持久化存储数据的,不支持复杂对象的存储,例如Array、Object等,如果有此需求,请转为JSON后再进行存储。
如何使用
// 首先在页面中引入storage.js
// 在调用前可以通过storage.support判断浏览器是否支持storage
//可以通过两种方式调用:
//一是直接调用
if(storage.support){
storage.get(key); //获取名字为 key 的storage的值
storage.set(key,value); //添加或修改一个名字为 key, 值为 value 的storage,true表示设置成功,false表示设置失败
storage.remove(key,value); //删除名字为 key 的storage,true表示删除成功,false表示删除失败
storage.clear(); //清除所有的storage
storage.size(); //返回已存储的storage数量
}
//二是通过先获取一个实例引用,此种方式可以避开单个xml只能存储64KB数据的限制。但是请注意的是,一个域下最多支持10个,所以一个页面中请避免超过10个storage实例。
var mystorage=storage('myName');
if(mystorage.support){
mystorage.get(key); //获取名字为 key 的storage的值
mystorage.set(key,value); //添加或修改一个名字为 key, 值为 value 的storage,true表示设置成功,false表示设置失败
mystorage.remove(key,value); //删除名字为 key 的storage,true表示删除成功,false表示删除失败
mystorage.clear(); //清除所有的storage
mystorage.size(); //返回已存储的storage数量
}
//v2.4新增
//支持代理功能,主要是为了ie下的userdata跨页面数据互访
//userdata只允许向上访问,不允许向下以及同级互访,所有如果如果涉及到跨页面数据共享,就需要指定一个页面节点作为代理
//该代理一般是使用iframe中节点
var iframe=docuemnt.createElement('iframe');
iframe.style.display='none';
iframe.onload=iframe.onreadystatechange=function(){//确保iframe加载完毕
if(iframe&&iframe.readyState&&iframe.readyState!='loaded'&&iframe.readyState!='complete'){return;}
iframe.onload=iframe.onreadystatechange=null;
var body=(iframe.window||iframe.contentWindow).document.body;
var storage=new storage(body); //或者 new storage('myName',body);
if(storage.support){
// code
}
}
iframe.src='/myPorxy.html';//使用根一级页面作为代理
document.body.appendChild(iframe);
DEMO
http://u.boy.im/storage/
Related Skills
node-connect
339.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
