(function (win,doc) { var GD16 = { /** * 创建cookie * @param argument json || string || null */ Crecookie: function (argument) { var date = new Date(); var d = new Date(date.setTime(date.getTime()+10000)); if(argument){ //参数有值 if (typeof argument == 'object') {//创建 for (var i in argument) { doc.cookie=i+'='+argument[i]+';expires='+ d.toGMTString(); } } else if (typeof argument == 'string') {//获取 doc.cookie=argument+'="";expires='+ new Date().toGMTString(); } else { return console.error('参数只能是json|string'); } }else{ // 参数为空的时候 var Cookie = document.cookie.split('; '); // 获取所有cookie,并通过'; '存入数组当中; Cookie.forEach(function(val,index){ var value = val.split('=')[0]; // 遍历数组获取名字 document.cookie = value+'="";expires=' + new Date().toGMTString(); // 删除cookie }); } } }; win.GD16 = GD16; //挂载 })(window,document)
这串代码是放到一个js文件中,使用的时候引用js就行了,这些代码只是自己的一些想法,也有一些不足和不完善的地方,希望可以指出;
引用方法——:
① GD16.Crecookie({name:value}) 作用 是创建,或修改,name代表名字,value代表值;
② GD16.Crecookie(name) 作用 是删除指定名字的cookie, name代表名字;
③ GD16.Crecookie( ) 作用 是删除所有的cookie, 参数为空;
封装思路——:
一 方法数量 cookie的方法大致分为创建,修改,删除;
二 封装方向 进行判断分类的时候,大致可以分为
1、创建+修改,需要名字和值,所以参数可以为json格式,并通过for in遍历json,使存储或修改;
2、删除,删除可以是删除某一个cookie和删除全部cookie;
① 删除一个,需要得到所删除的指定名字,所以参数可以是字符格式,通过传递的字符(名字),将指定的cookie删除;
② 删除所有,不需要任何参数,通过document.cookie,获取所有的cookie,然后使用split('; '),进行分割并存入数组,然后用forEach遍历数组,再用split(‘=’)分割之后得到名字,再删除掉cookie。
三 大体总结 对传递的参数进行判断,首先判断传递的参数是否存在
1、当参数存在值时
① 判断值是否为json格式 当为json格式时执行创建指令
② 判断值是否为字符串格式 当为字符串格式时执行删除某一个cookie指令
2、当参数不存在值时
可以得到参数为空,即执行删除所有指令
大体就是这样,不完善的地方望指出;