//쿠키 초 단위로 설정하는 함수
function setCookieTime(name, value, mSecond) {
var today = new Date();
var expire = new Date(today.getTime() + mSecond);
window.document.cookie = name + "=" + escape(value) + ((expire) ? ";path=/; expires=" + expire.toGMTString() : "");
}
// 날짜 단위로 설정하는 함수
function setCookie(name, value, days) {
setCookieTime(name, value, days * 24 * 60 * 60 * 1000);
}
// 쿠키 읽어오는 함수
function getCookie(uName) {
var strCookie = " " + window.document.cookie;
var ptrFr = strCookie.indexOf(" " + uName + '=');
if (ptrFr != -1) {
ptrFr = ptrFr + uName.length + 2;
ptrTo = strCookie.indexOf(';', ptrFr);
if (ptrTo == -1) {
ptrTo = strCookie.length;
}
return unescape(strCookie.substring(ptrFr, ptrTo));
} else {
return "";
}
}
사용 예제)
setCookie( "Tester", "234", 30 );
var Tester = getCookie( "Tester" );
alert( Tester );
이렇게 사용하면 Tester에 234라는 값이 들어가게 된다.
이 쿠키의 setCookieTime의 window.document.cookie에 들어가는 값을 보면
window.document.cookie = "쿠키이름=쿠키의값;path=/;expires=유효기간;domain=도메인";
이렇게 되어있다.
path는 이 쿠키의 값을 읽어올 수 있는 경로의 범위이다. path값을 안넣어주면
이 쿠키가 설정되는 문서의 위치의 디렉토리와 하위디렉토리까지 문서에서만 사용할수가 있게 된다.
즉, 만약 상위 디렉토리에 있는 문서에서 이 쿠키값을 가져올 수가 없는 것이다.
path로 '/'를 주게 되면 루트 도메인에서부터 하위 디렉토리 전체에서 이 쿠키값을 사용할 수 있게 된다.
이 것을 모르고 2일 간을 고생했다.(괜히 쿠키 버그 탓 하고 있었다..ㅡㅡ;;)
도메인은 위의 경로처럼 한 사이트에서 만든 쿠키가 다른사이트에 영향을 주지 않으므로 적용될 도메인을
기록하면 된다. 생략하면 자동으로 사이트의 기본 도메인으로 설정된다.
유효기간은 설정하지 않으면 익스플로워를 닫을때까지 유효하게 된다.
그리고 생성된 쿠키의 값을 보면
*
Tester
234
www.test.co.kr/
1600
3762760832
29884808
1686902864
29881791
*
이렇게 들어가져있는 것이 보인다.
처음에는 쿠키 이름, 쿠키의 값, 쿠키가 적용될 사이트 이름, 그 밑으로는 아마 유효기간이나 기타 등등
정보가 저장된 듯 하다.
자세한건 책을 좀더 찾아봐야할 것 같고 여기서는 간단하게 쿠키를 자바스크립트로 저장하고 불러오는것만
알아보았다.
참고 : 굄돌님의 블로그 글
황로거님의 블로그 글
이명헌 경영스쿨
Trackback Address :: http://kongmks.cafe24.com/trackback/286
자바스크립트로 팝업창을 뛰우는 방법~
var strTitle = "팝업창 제목";
var strBody = "Hello. World!";
var hPop = window.open( "", "", "top=100, left=80, width=340, height = 500" );
hPop.document.write("<HTML><HEAD><TITLE>" + strTitle + "</TITLE></HEAD>");
hPop.document.write("<BODY>" );
hPop.document.write( strBody );
hPop.document.write( "<a href=\"Javascript:self.close();\">닫기</a>" );
hPop.document.write( "</BODY></HTML>" );
그외 응용은 여러분들의 몫입니다~ ㅋ
함수로 만들어도 괜찮을 듯 하고 ㅋ
그리고 한가지 추가로 더 응용해서
팝업창 오늘 하루동안 안뜨게 하는 코드도 적어보겠습니다.
웹상에서 적으려니 깔끔하게 적기 힘드네요
그냥 긁으신다음에 복사해서 메모장에서 붙여넣기로 보세요~^^
하루 안뛰우기 옵션 소스 보기..
<Script Language="Javascript">
<!--
//쿠키 초 단위로 설정하는 함수
function setCookieTime(name, value, mSecond) {
var today = new Date();
var expire = new Date(today.getTime() + mSecond);
window.document.cookie = name + "=" + escape(value) + ((expire) ? ";path=/; expires=" + expire.toGMTString() : "");
}
// 날짜 단위로 설정하는 함수
function setCookie(name, value, days) {
setCookieTime(name, value, days * 24 * 60 * 60 * 1000);
}
// 쿠키 읽어오는 함수
function getCookie(uName) {
var strCookie = " " + window.document.cookie;
var ptrFr = strCookie.indexOf(" " + uName + '=');
if (ptrFr != -1) {
ptrFr = ptrFr + uName.length + 2;
ptrTo = strCookie.indexOf(';', ptrFr);
if (ptrTo == -1) {
ptrTo = strCookie.length;
}
return unescape(strCookie.substring(ptrFr, ptrTo));
} else {
return "";
}
}
// 페이지 이동
function MoveSite( url ) {
location.href = url;
}
// 팝업 뛰우기
var Pop1 = getCookie( "listen" );
// Pop1 쿠키에 Check가 되지 않았으면 팝업을 뛰운다.
if( Pop1 != "Check" )
{
var strTitle = "창 제목";
var strBody;
var strImg = "/listen.jpg";
var strLink = "/link.php";
strBody = "<IMG SRC='" + strImg + "' ALT='팝업' usemap='#mapPop' border=0 /><BR>" +
"<map name='mapPop' id ='mapPop'>" +
"<area shape='rect' coords='10,20,30,40' BGCOLOR='black' href='" +
strLink + "'" +
"OnClick=\"javascript:{opener.MoveSite( this.href );self.close();return result;}\" />" +
"</map>" +
"<INPUT TYPE=\"checkbox\" NAME=\"popCheck\" OnClick=\"Javascript:{opener.setCookie( 'listen', 'Check', 1 );self.close();}\" />" +
"<font size='9px'>" +
"<a href=\"Javascript:{opener.setCookie( 'listen', 'Check', 1 );self.close();}\" style='font-size: 12px'>" +
"<b>오늘 하루 열지 않기</b></a>" +
"</font>";
hPop = window.open( "", "", "top=100, left=80, width=340, height=500" );
hPop.document.write( "<HTML><HEAD><TITLE>" + strTitle + "</TITLE></HEAD>" );
hPop.document.write( "<BODY>" );
hPop.document.write( strBody );
hPop.document.write( "</BODY></HTML>" );
}
-->
</Script>
Trackback Address :: http://kongmks.cafe24.com/trackback/285

어릴 때부터 좋아하던 쿠키~
어릴때부터 무척 좋아했던 쿠크다스...
난 정확한 명칭도 이번에 알았다.
어릴때부터 부르던 이름이라 쿠키다스인줄 알았다.
쿠키의 명작이라길래 영어로는 CookieDas 인줄 알았다. ㅋ
원래 영어로는
Couque D`asse란다.
벨기에 아스(ASSE) 지방의 쿠키란 뜻을 가지고 있다고...
참고 : 슬로스군 님의 블로그
어빙 님의 블로그
Trackback Address :: http://kongmks.cafe24.com/trackback/283