开发者

Can anyone please tell me what does this funciton do?

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));
}


The purpose of this function is to attempt to retrieve a cookie value from the page cookies. If no cookies are set, the function will attempt to set a default value of "w_wid=1;path=/" and return 1. If cookies are not supported, a semi-random (time based) value between 1 and 20 will be returned, and no cookie will be set. If cookies are set, the function will try to retrieve the value corresponding to the name parameter (wid02). If the name is not found, the function will return null, otherwise the value is returned.

The function, annotated by line:

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));
}

Please don't ask us to do your homework anymore.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜