简体   繁体   English

谁能告诉我这个功能是做什么的?

[英]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. 此功能的目的是尝试从页面cookie中检索cookie值。 If no cookies are set, the function will attempt to set a default value of "w_wid=1;path=/" and return 1 . 如果未设置cookie,则该函数将尝试设置默认值"w_wid=1;path=/"并返回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. 如果不支持cookie,则将返回1到20之间的半随机(基于时间)的值,并且不会设置cookie。 If cookies are set, the function will try to retrieve the value corresponding to the name parameter ( wid02 ). 如果设置了cookie,该函数将尝试检索与name参数( wid02 )相对应的值。 If the name is not found, the function will return null , otherwise the value is returned. 如果找不到该名称,则该函数将返回null ,否则返回该值。

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. 请不要再要求我们做功课了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM