How to find out if a cookie is already there?
So I do simple JS function like
function writ开发者_C百科eCookie()
{
var the_cookie = "users_resolution="+ screen.width +"x"+ screen.height;
document.cookie=the_cookie
}
how tm make sure that users_resolution is set?
You could write a function like so:
function getCookie(cName) {
var cVal = document.cookie.match('(?:^|;) ?' + cName + '=([^;]*)(?:;|$)');
if (!cVal) {
return "";
} else {
return cVal[1];
}
}
Then, after you have set the cookie, you can call getCookie() and test it's return value, if it's equal to an empty string, or "", which is false, then the cookie doesn't exist. Otherwise you've got a valid cookie value.
The above paragraph in code:
var cookie = getCookie("users_resolution");
if (!cookie) {
// cookie doesn't exist
} else {
// cookie exists
}
If you just do
var cookies = document.cookie;
then the string cookies will contain a semicolon-separated list of cookie name-value pairs. You can split the string on ";" and loop through the results, checking for the presence of your cookie name.
I know you didn't tag this as jQuery, but I made a jQuery plugin to handle cookies, and this is the snippet that reads the cookie value:
/**
* 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;
You might want to use indexOf to check whether it exists or not:
if(document.cookie.indexOf('users_resolution=') > 0){
// cookie was set
}
加载中,请稍侯......
精彩评论