그동안 별 생각없이 쿠키를 사용해 왔으나 최근 작업시 확인해본바로는 Apple Safari
브라우저에서한글 쿠키를 인식하지 못하는 문제가 있어 스크립트내에서 이를
해결하기 위해 약간의 우회적인 방법으로 encodeURI(), decodeURI() 를 사용하여
처리하는 방식을 이용해 보았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<html> <body> <input type="button" value ="쿠키저장" onClick="cookieSave()"> <input type="button" value ="쿠키삭제" onClick="cookieDel()"> <input type="button" value ="쿠키확인" onClick="cookieLoad()"> <script type='text/javascript'> //--쿠키 기본 처리함수 --// function getCookie(name){ name = name.replace("\[","\\["); name = name.replace("\]","\\]"); name = name.replace("\(","\\("); name = name.replace("\)","\\)"); name = name.replace("\{","\\{"); name = name.replace("\}","\\}"); var re=new RegExp(name+"=[^;]+", "i"); if (document.cookie.match(re)) { return document.cookie.match(re)[0].split("=")[1]; } return ""; } function setCookie(name, value, days){ var expireDate = new Date(); var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days)); document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/"; } function delCookie(name){ if(getCookie(name)){ document.cookie = name+"=''; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"; } } //-- 쿠키 기본 이용함수--// function cookieSave(){ var hanCookieName = "한글쿠키테스트"; var saveValue = "한글쿠키에 저장될 값"; var encodeName = encodeURI(hanCookieName); var encodeValue = encodeURI(saveValue); alert(encodeName + " : " + encodeValue); setCookie(encodeName,encodeValue,1); } function cookieLoad(){ var encodeName = encodeURI("한글쿠키테스트"); var cookieValue = decodeURI(getCookie(encodeName)); alert(cookieValue); } function cookieDel(){ var encodeName = encodeURI("한글쿠키테스트"); delCookie(encodeName); } </script> </body> </html> |
]]>
댓글 남기기