如何找出饼干是否已存在?

时间:2010-11-30 16:46:15

标签: javascript html cookies

所以我做了简单的JS函数,比如

function writeCookie() 
{ 

var the_cookie = "users_resolution="+ screen.width +"x"+ screen.height; 

document.cookie=the_cookie 

} 

如何确保设置用户分辨率?

4 个答案:

答案 0 :(得分:4)

您可以编写如下函数:

  function getCookie(cName) {
    var cVal = document.cookie.match('(?:^|;) ?' + cName + '=([^;]*)(?:;|$)');
    if (!cVal) {
      return "";
    } else {
      return cVal[1];
    }
  }

然后,在设置完cookie后,您可以调用getCookie()并测试它的返回值(如果它等于空字符串)或"",即false,然后cookie不存在。否则你有一个有效的cookie值。

以上段落代码:

var cookie = getCookie("users_resolution");
if (!cookie) {
   // cookie doesn't exist
} else {
  // cookie exists
}

答案 1 :(得分:3)

如果你这样做

var cookies = document.cookie;

然后字符串cookies将包含以分号分隔的cookie名称 - 值对列表。您可以在";"上拆分字符串并循环显示结果,检查您的Cookie名称是否存在。

答案 2 :(得分:1)

我知道您没有将此标记为jQuery,但我创建了jQuery plugin to handle cookies,这是读取Cookie值的代码段:

  /**
   * RegExp Breakdown:
   * search from the beginning or last semicolon: (^|;)
   * skip variable number of spaces (escape backslash in string): \\s*
   * find the name of the cookie: name
   * skip spaces around equals sign: \\s*=\\s*
   * select all non-semicolon characters: ([^;]*)
   * select next semicolon or end of string: (;|$)
   */
  var regex = new RegExp( '(^|;)\\s*'+name+'\\s*=\\s*([^;]*)(;|$)' );
  var m = document.cookie.match( regex );
  // if there was a match, match[2] is the value
  // otherwise the cookie is null ?undefined?
  val =  m ? m[2] : null;

答案 3 :(得分:0)

您可能希望使用indexOf来检查它是否存在:

if(document.cookie.indexOf('users_resolution=') > 0){
  // cookie was set
}