代码改变世界

[转]操作cookies的js框架

2006-11-18 18:07  迷路中的路人甲  阅读(429)  评论(0编辑  收藏  举报

原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?BoardID=218&ID=94193

初学ajax,昨天做项目的同时,写了一个操作cookies的js框架,比较符合jsp或者asp操作cookies的习惯(因为javascript里本身没有这样的对象,操作cookies等于操作字符串,所以比较麻烦)。源代码已经上传点击下载该文件,以下是框架接口说明:

对象:document.xCookie / xCookie (两个对象同等)
方法:
        document.xCookie.load(d)   预加载当前已存cookies,参数d为文档对象,默认为当前文档,即document。此函数是预加载,需在所有cookie操作前使用。
        document.xCookie.save() 保存对cookies的修改
        document.xCookie.clear() 清除当前文档所有cookies
        document.xCookie.$(name) 返回以name命名的cookie对象(document.xCookie.cookie类),相当于asp里的Response.Cookies(name)。用点语法或[]语法访问该cookie的属性值,即document.xCookie.$(name).prop或document.xCookie.$(name)[prop]。如果属性值不存在,则返回undefined(null)


类:document.xCookie.cookie (操作以name命名的cookie对象,document.xCookie.$(name)返回的就是这个类的实例,所以这个类的实例可以不必单独自行创建)
构造函数
        function(document, name, timeout, path, domain, secure),document为文档对象(必填);name为cookie的名字(必填);timeout为cookie过时设置,单位为分钟,可缺省,默认为暂时保存;后三个参数不在赘述,不明白的请参考有关javascript里的cookie知识,可缺省。
方法:
        class.read(),读取当前cookie的属性值对(创建类实例时已经执行)
        class.write(),写入对当前cookie的修改
        class.remove(),删除当前cookie
        class.toString(),返回属性值对的字符串表示形式
属性
        class.prop,访问当前cookie的prop属性

举例:
        document.xCookie.load();
        document.xCookie.$('myname').first='terry';
        document.xCookie.$('myname').last='king';
        document.xCookie.$('sex').sex='male';        
        document.xCookie.save();
        alert(document.xCookie.$('myname').toString());
        alert(document.xCookie.$('sex').toString());

备注,压缩包里一共有两个源文件,xCookie+prototype.js是沿用了prototype(1.4)框架的一些方法,需要prototype框架的支持
另外一个xCookie是没有沿用prototype框架的。