//JS 쿠키 동작 방식
// 쿠키 작성
function setCookie(name,value)
{
var Days = 30;
var exp = new Date()
exp.setTime(exp.getTime() Days*24 *60* 60*1000);
document.cookie = name "=" escape (value) ";expires=" exp.toGMTString()
}
//쿠키 읽기
function getCookie (이름 )
{
var arr,reg=new RegExp("(^| )" name "=([^;]*)(;|$)")
if(arr=document .cookie .match(reg)) return unescape(arr[2]);
else return null;
}
//쿠키 삭제
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1)
var cval=getCookie(name)
if(cval!=null) document.cookie= 이름 "= " cval ";expires=" exp.toGMTString();
}
//사용 예
setCookie("name","hayden")
alert(getCookie("name") )) ;//사용자 정의 만료 시간을 설정해야 하는 경우
//그런 다음 위의 setCookie 함수를 다음 두 함수로 대체합니다.
//프로그램 코드
function setCookie2(name, value) ,time){
var strsec = getsec(time);
var exp = new Date()
exp.setTime(exp.getTime() strsec*1)
document.cookie = name "=" escape (value) ";expires=" exp.toGMTString()
}
function getsec(str){
alert(str)
var str1=str.substring( 1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s"){
return str1*1000; if (str2=="h"){
return str1*60*60*1000;
}else if (str2=="d"){
return str1*24*60*60*1000 ;
}
}
//만료 시간 설정의 예입니다.
//s20은 20초를 나타냅니다.
//h는 12시간과 같이 시간을 나타냅니다. :h12
//d는 일 수, 30일입니다. d30
//지금은 이 세 개만 기록됩니다.
setCookie2("name2","hayden2","s20")alert ( getCookie("name2"));
다음은 몇 가지 일반적이고 유용한 기능입니다.
//쿠키의 디코딩된 값 가져오기
{
var endstr = document.cookie.indexOf ( ";", 오프셋);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr)); }
함수 SetCookie(이름, 값)
//쿠키 값 설정
{
var expdate = new Date()
var argv = SetCookie.arguments; SetCookie.arguments.length;
var 만료 = (argc > 2) ? argv[2] : null
var path = (argc > 3) : null; domain = (argc > 4) ? argv[4] : null
var secure = (argc > 5) ? argv[5] :
if(expires!=null) expdate.setTime( expdate.getTime() ( 만료 * 1000 ));
document.cookie = name "=" escape (value) ((expires == null) ? "" : ("; 만료=" expdate.toGMTString() ) )
((경로 == null) ? "" : ("; path=" 경로)) ((도메인 == null) ? "" : ("; domain=" 도메인))
(( 보안 == true) ? "; secure" : "");
}
function DelCookie(이름)
//쿠키 삭제
{
var exp = new
exp.setTime(exp.getTime() - 1);
var cval = GetCookie(이름);
document.cookie = name "=" cval "; 만료=" exp.toGMTString(); >}
function GetCookie(name)
//Cookie의 원래 값 가져오기
{
var arg = name "=";
var alen = arg.length; clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i alen; i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) 1
if (i == 0) break; }
return null;
}
//Test
SetCookie("sunshine","1986")
alert(GetCookie("sunshine"))