我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 网络技术 | 程序设计 | 系统操作 | 本站动态 | 业界动态 | 安全公告 | 病毒公告 | 八卦黑客
 
 
您当前的位置:我爱黑客 -> 黑客攻防 -> 技术杂谈 -> 文章内容  
栏目导航
· Q Q 攻防 · 黑客入门
· 攻防实战 · 安全初步
· 工具详解 · 黑客教程
· 漏洞研究 · 黑客编程
· 技术杂谈
热门文章
· 为什么网站设计标准化..
· Ajax内部交流文档
· 自适应图片大小的弹出..
· 纯JS实现的动态表格
· 本来想写个Cs的Web服务..
· 看程序员们是如何喝酒..
· 使用MD5变换算法防穷举..
· JavaScript系列之防止..
· RSS 2.0 简明资料
· 在Blog上追加了「牛啦..
· 纯字符模仿Longhorn/o..
· 操作cookie的类 (DHTM..
相关文章

· 在C++Builder中使用..
· 用CB制作具有HTML风..
· More Effective C++..
· 修改文件操作
· [Java]将 HTML 文件..
· VC++ ADO操作数据库..
· 提高 J2EE 技术和 ...
· [图文] [推荐]入门:..
· 结构类型转换快速操..
· 字符串操作指令
查看更多与操作cookie的类 (DHTML)相关内容

操作cookie的类 (DHTML)
作者:佚名  来源:不详  发布时间:2007-1-8 13:08:54  发布人:ghostfire

减小字体 增大字体


<script language="JScript">
function Cookie(delim){//操作Cookie类
    Array.prototype.splice=function(){
        var len=arguments.length,tarray=[],i=arguments[0]+arguments[1];
        if(len>1){
            while(i<this.length)tarray[tarray.length]=this[i++];
            this.length=arguments[0];
            if(len>2)for(var i=2;i<len;i++)this[this.length]=arguments[i];
            var tlen=tarray.length,i=0;
            while(i<tlen)this[this.length]=tarray[i++];
            }
        return this;
        }
    this._Cookie=[];
    this.Load=function(){
        if(document.cookie.indexOf(";")!=-1){
            var _sp,_name,_tp,_tars,_tarslength;
            var _item=document.cookie.split("; ");
            var _itemlength=_item.length;
            while(_itemlength>0){
                _sp=_item[--_itemlength].split("=");
                _name=_sp[0];
                _tp=_sp[1].split(",");
                _tars=_tp.slice(1,_tp.length);
                this._Cookie[_name]=[];
                this._Cookie[_name]=_tars;
                this._Cookie[_name]["timeout"]=_tp[0];
                }
            return true;
            }
        return false;
        }
    this.Save=function(){
        var _str,_ars,_mars,_marslength,timeout,i,key;
        for(key in this._Cookie){
            if(!this._Cookie[key])return;
            _str=[];
            _mars=CookieClass._Cookie[key];
            _marslength=_mars.length;
            for(i=0;i<_marslength;i++)_str[_str.length]=escape(_mars[i]);
            document.cookie=key+"="+_mars["timeout"]+(_str.length>0?",":"")+_str+";expires="+new Date(parseInt(_mars["timeout"])).toGMTString();
            }
        
        }
    this.GetCookieCount=function(){
        var _length=0,key;
        for(key in this._Cookie)_length++;
        return _length;
        }
    this.Create=function(name,days){
        this._Cookie[name]=[];
        this._Cookie[name]["timeout"]=new Date().getTime()+days*86400000;
        }
    this.Modify=function(name,days){
        this.Create(name,days);
        }
    this.Delete=function(name){
        this.Create(name,0);
        }
    this.AddItem=function(name,value){
        this._Cookie[name][this._Cookie[name].length]=value;
        }
    this.DelItem=function(name,index){
        this._Cookie[name].splice(index,1);
        }
    this.GetCount=function(name){
        return this._Cookie[name].length;
        }
    this.GetItem=function(name,index){
        return this._Cookie[name][index];
        }
    }
</script>

<script language="JScript">
/*
====================================
Design :Flashsoft
====================================
浏览器能够通过Cookies保留有关数据。象Windows的注册表一样,用户不必知道Cookies的具体位置,浏览器能找到这些数据。第六代的浏览器,不管是IE还是NS都支持document.cookie属性。通过这个属性来读取或修改Cookies的值。不过Cookies的存储形式是非结构化的长字符串,需要经过相应的解析后才有意义。

Cookies的表达如下,除了name=value以外,其它均为可选:
name=value; 
expires=date;
domain=domainname
path=pathname;
secure;

例如:
User=HockeyDude; expires=Thu,01-Jan-70 00:00:01 GMT; domain=www.mydomain.com; path=/images; secure;
Pass=Gretzky; expires=Thu,01-Jan-70 00:00:01 GMT; domain=www.mydomain.com; path=/images; secure;

这么长的两个字符串只代表了两个Cookies。如果还要再加上电子信箱或其他信息就还得加长字符串。通常都是通过分解这样的字符串来取得各个变量或元素的。这实在是费时费力的事。

我使用面向对象设计(Object Oriented Design,OOD)的思路来编写Cookies处理函数,其特点如下:

便于增删子项。这是很重要的,有些浏览器限制Cookies的使用数量。
通过修改函数可以容易地修改时效数据。通常的做法很麻烦,要拷贝Cookies,删除原Cookies,修改并重写Cookies。
Cookies和它的子项存放在数组里。可以根据需要快速而有效地进行修改。这样也无须解析那长长的字符串。

Cookies对象的使用
以下是对象的公有方法:

方括号[]内是可选参数
//构造
Cookie([定界符,缺省为句点]) - 构造函数

//初始化
GetCookieCount() - 返回Cookies数量
Create(name, days) - 创建Cookies及其时效天数
Modify(name, days) - 修改Cookies的时效天数
Delete(name) - 删除Cookies及其子项
GetCount(name) - 返回Cookies的子项数量
AddItem(name,value) - 增加一个子项
GetItem(name,index) - 返回指定索引的子项
DelItem(name,index) - 删除指定的子项

//存取
Load() - 读取Cookies
Save() - 存储Cookies

下面是应用实例:
*/
var CookieClass=new Cookie();
if(!CookieClass.Load()){
    CookieClass.Create("Pass",1);
    CookieClass.Create("User",1);
    CookieClass.AddItem("Pass","Ps1");
    CookieClass.AddItem("Pass","Ps2");
    CookieClass.AddItem("Pass","Ps3");
    CookieClass.AddItem("Pass","Ps4");
    CookieClass.AddItem("Pass","Ps5");
    CookieClass.AddItem("Pass","Ps6");
    CookieClass.DelItem("Pass",1);
    CookieClass.Save();
    }
alert(document.cookie);
</script>


[Last Edited By KusTa @ 2005-02-13 04:49 PM]

查看更多与操作cookie的类 (DHTML)相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      自适应图片大小的弹出窗口       纯字符模仿Longhorn/office2003风格
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图