JavaScript实现不同目录下的cookie共用

在预设的隐私规则下,cookie 只能被设定网页的目录与其子目录中的其它网页所读取。
譬如:假定网页[url]http://www.XX.com/webs/web1/2.htm[/url] 建立了一个 cookie,
则此 cookie 可以被http:// [url]www.XX.com/webs/web1/.....[/url]的目录所读取,
但不能被http:// [url]www.XX.com/webs[/url] 的其它目录所读取。

所以如果要设定其它目录也可读取此Cookie 则可设path=/webs,
则网页/webs下的其它目录就可以读取此 cookie。
若设定 path=/,则网站 http:// [url]www.XX.com[/url] 里所有网页均可以读取此 cookie。

Javascript例子:
document.cookie = "name=aa;path=/";

曾经在小站上想用Javascript操作cookie做个每个用户弹窗只弹一次,
后来发现不同目录之间还是会重复弹出,于是从网络上找到了以上方法,解决问题。

附上javascript一用户只弹一次代码:
<!--

popads ();

function popads ()
{
        var ads=GetCookie('ws126pop');//取得cookie
        if(ads==null || (ads!='haved'){
                document.write("<SCRIPT LANGUAGE=JavaScript1.1 SRC='http://play.unionsky.cn/show/?placeID=XX'></SCRIPT>");//弹窗广告
                closead('haved');
        }
}

function GetCookie (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
        return getCookieVal (j);
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
        }
        return null;
}

function getCookieVal (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
        endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
}

function closead(val){
        var expDays = 24; //设置cookies时间,任意设。
        var exp = new Date();
        exp.setTime(exp.getTime() + (expDays*60*60*1000));
        SetCookie('ws126pop', val, exp);//ws126pop为cookie名,任意设
}

function SetCookie (name, value) {
        var argv = SetCookie.arguments;
        var argc = SetCookie.arguments.length;
        var expires = (argc > 2) ? argv[2] : null;
        var path = (argc > 3) ? argv[3] : null;
        var domain = (argc > 4) ? argv[4] : null;
        var secure = (argc > 5) ? argv[5] : false;
        document.cookie = name + "=" + escape (value) +
        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + "; path=/" +
        ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");
}

//-->

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值