function w_cookie_wid(wid02) {
if ( ! document.cookie) {
document.cookie = "w_wid=1;path=/";
if ( ! document.cookie) {
var w_date = new Date();
return (w_date.getSeconds() % 20 + 1);
}
else return 2 - 1;
}
var prefix = wid02 + "=";
var begin = document.cookie.indexOf("; " + prefix);
if (begin == - 1) {
begin = document.cookie.indexOf(prefix);
if (begin != 0) {
return null;
}
}
else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == - 1) {
end = document.cookie.length;
}
return unescape(document.cookie.substring(begin + prefix.length, end));
}
答案 0 :(得分:4)
此功能的目的是尝试从页面cookie中检索cookie值。如果未设置cookie,则该函数将尝试设置默认值"w_wid=1;path=/"
并返回1
。如果不支持cookie,将返回1到20之间的半随机(基于时间)值,并且不会设置cookie。如果设置了cookie,则该函数将尝试检索与name参数(wid02
)对应的值。如果找不到该名称,该函数将返回null
,否则返回该值。
该功能,由行注释:
function w_cookie_wid(wid02) {
//if there are no cookies for this page
if (!document.cookie) {
//set a cookie value associated with the root
document.cookie = "w_wid=1;path=/";
//if there still are no cookies (not supported/allowed)
if (!document.cookie) {
//make a new date representing the current time
var w_date = new Date();
//return a number between 1 and 20
//based on the current time
return (w_date.getSeconds() % 20 + 1);
}
//return 1 if the cookie set was successful
else return 2 - 1;
}
//create the name portion for a cookie value
var prefix = wid02 + "=";
//check to see if that value is already set,
//but not as the first item
var begin = document.cookie.indexOf("; " + prefix);
//if it isn't
if (begin == -1) {
//check to see if it is set as the first item
begin = document.cookie.indexOf(prefix);
//if it isn't set (at all)
if (begin != 0) {
//return a null value
return null;
}
}
//if it IS set somewhere
else {
//set begin to be the index of beginning
//of the name/value pair
begin += 2;
}
//get the index of the first semi-colon after
//the beginning of the name/value
var end = document.cookie.indexOf(";", begin);
//if there isn't one
if (end == -1) {
//set the end index as the length of the cookie(s)
end = document.cookie.length;
}
//return the cookie name/value pair string
return unescape(document.cookie.substring(begin + prefix.length, end));
}
请不要让我们再做作业了。