Jam's story
[JS] 쿠키 본문
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>2022.06.13 07:01:34</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<h3>ex01.html</h3>
쿠키이름: <input type="text" id="cname" /><br>
쿠키 값: <input type="text" id="cvalue" /><br>
<button onclick="btn_allCookies()">쿠키</button>
<button onclick="btn_setCookies()">쿠키</button>
<button onclick="btn_Cookies()">쿠키</button>
<button onclick="btn_Cookies()">쿠키</button>
<p id="demo"></p>
<script>
function btn_allCookies(){
var cookies=getAllCookies();
$("#demo").html(cookies);
}
</script>
</body>
</html>
function delCookie(cname) { //매개변수로 쿠키명 받기
if(getCookie(cname)){
var now = new Date();
now.setDate(now.getDate()-1);
document.cookie = cname+"=; expires="+now.toUTCString();
}
}
function getCookie(cname) {
var cookies = document.cookie;
var cookieArray = cookies.split(/;\s/);
for (var i = 0; i < cookieArray.length; i++) {
var nv = cookieArray[i].split("=");
if (nv[0]==cname) {
return unescape(nv[1]);
}
}
return null;
}
function setCookie(cname, cvalue, exdays) {
var now = new Date();
now.setDate(now.getDate()+exdays);
//1970.1.1~ms 값
//now.setTime( now.getTime + 1000*60*60*24*exdays ) 조작해나가면 된다
document.cookie = cname+"="+cvalue+"; expires="+now.toUTCString();
//domain = localhost
//path = /webPro/javascript/days08
}
function getAllCookies(){
var cookies = document.cookie;
return cookies; //모든 쿠키 가져오겠다는
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
쿠키 이름 : <input type="text" id="cname" /><br>
쿠키 값 : <input type="text" id="cvalue" /><br>
<button onclick="getAllCookies()"> 모든 쿠키 정보 확인 </button>
<button onclick="setCookie()">쿠키 생성</button>
<button onclick="getCookie()">쿠키 확인</button>
<button onclick="delCookie()">쿠키 삭제</button>
<p id="demo"></p>
<script>
function delCookie() {
var cname = $("#cname").val();
//쿠키를 삭제할 때는 만료시점을 과거로 설정해서 다시 쿠키 생성(저장)
var now = new Date();
now.setDate(now.getDate()-1); //오늘날짜-1일 (과거로 만들기)
//쿠키 저장
document.cookie = cname+"=; expires="+now.toUTCString();
//삭제할거니 cvalue는 필요 없겠다
}
function getCookie() {
var cname = $("#cname").val();
// "id=admin; color=red; age=30"
var cookies = document.cookie;
//var cookieArray = cookies.split(";");
var cookieArray = cookies.split(/;\s/);
/*
cookieArray.forEach(function(elt, i, array) {
//cookie += elt+"<br>";
//$("#demo").html(cookie);
var nv = elt.split("=");
if (nv[0]==cname) { //똑같으면 쿠키 찾아진것
$("#demo").html(unescape(nv[1]));
//unescape: 저장할때 escape로 저장했으니 출력할때 유니코드값을 다시 바꿔주는 것
return; //forEach() 중간
//강제 예외 발생 - 중단
//사용하려면 return이 아니라 throw를 줘서 강제로 예외 발생시켜야 함
//왜냐. foreach는 중단에 중단하면 안되는 함수라 빠져나올거면
//강제로 예외를 발생시켜야 한다
}
}); 안된다
*/
//foreach 대신 for문 쓰니 된다
for (var i = 0; i < cookieArray.length; i++) {
var nv = cookieArray[i].split("=");
if (nv[0]==cname) { //똑같으면 쿠키 찾아진것
$("#demo").html(unescape(nv[1]));
//unescape: 저장할때 escape로 저장했으니 출력할때 유니코드값을 다시 바꿔주는 것
return;
}
}
$("#demo").html("찾는 쿠키는 존재하지 않습니다");
}
function setCookie() {
var cname = $("#cname").val();
var cvalue = escape($("#cvalue").val());
//쿠키값(cvalue) escape() 저장 -> %uBC30%uB2E4%uC5F0 한글이 16진수로 출력된다
//$("#demo").html(escape(cvalue));
//unescape(??); 16진수를 한글로 바꾸자
//만료시점(10일)
var now = new Date();
now.setDate(now.getDate()+10); //오늘날짜+10일 (18+10=28)
//쿠키 저장
document.cookie = cname+"="+cvalue+"; expires="+now.toUTCString();
//텍스트 박스 초기화
$("#cname").val("");
$("#cvalue").val("");
//브라우저 우측 점3개 -> 설정
}
function getAllCookies(){
var cookies = document.cookie; //string 돌리는데
if (cookies) { //if 줘도 되냐? => null, "", 0, undefined, -0 등등 다 false이기 때문에 가능
$("#demo").html(cookies);
}else{
$("#demo").html("쿠키 존재x");
}
}
</script>
</body>
</html>
'WEB > JavaScript' 카테고리의 다른 글
[JS] 쿠키 (0) | 2022.06.10 |
---|---|
[JS] 모달창 (0) | 2022.06.10 |
[JS] oncontextmenu (오른쪽마우스) ,onmousedown (0) | 2022.06.10 |
[JS]window.alert() (0) | 2022.06.10 |
[JS] 새창 열고 닫기 (0) | 2022.06.09 |
Comments