【 以下文字转载自 Google 讨论区 】
发信人: modico (modico), 信区: Google
标  题: gmail client code review,part 4
发信站: 水木社区 (Fri Oct 20 09:14:20 2006), 站内
设置/读取cookie:
expires 参数是个秒数。
若小于0,表示在浏览器关闭时删除;
若=0,表示删除;
否则是表示从现在起再过多少秒后才过期, 最长的一个
是名为 gmailchat 的 cookie,设了5年。
expires 参数最好是设计为可选的,比如默认为 -1
判断顺序最好也是 ==0, > 0, 最后 else
function setCookie/*AX*/(name, value, expires)
{
    var d = "" + name + "=" + value;//前一个空串[""+]多余
    assert/*Gd*/(! d.match(/[\s;]/), "trying to set an invalid cookie " + d);
    var e;
    if (expires < 0) {
        e = "";
    }
    else if (expires == 0) {
        var f = new Date(1970, 1, 1);
        e = ";expires=" + f.toUTCString();
    }
    else {
        var f = new Date(now/*AN*/() + expires * 1000);
        e = ";expires=" + f.toUTCString();
    }
    document.cookie = name + "=" + value + ";path=" + g_topContextPath/*Gg*/ + e;
};
// 如果入口url是 
http://www.google.com/gmail/?auth=....// 则返回 '/gmail'
function getTopContextPath/*AQ*/()
{
    var a = /^([\w]+:\/\/[^\/?]+)(.*)$/.exec(top.location.href);
    assert/*Gd*/(a != null);
    var b = a[2];
    assert/*Gd*/(b.length >= 3 && b.charAt(0) == "/");
    var c = b.indexOf("?");
    if (c >= 0) {
        b = b.substring(0, c);
    }
    assert/*Gd*/(b.length >= 3 && b.charAt(b.length - 1) == "/");
    return b.substring(0, b.length - 1);
}
var g_topContextPath/*Gg*/ = getTopContextPath/*AQ*/();
function getCookie/*G5*/(a)
{
    var b = String(document.cookie);
    var c = b.indexOf(a + "=");
    if (c != -1) {
        var d = b.indexOf(";", c);
        return b.substring(c + a.length + 1, d == -1 ? b.length : d);
    }
    return "";
};
--
FROM 218.249.84.*