【 以下文字转载自 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.*