관리 메뉴

nkdk의 세상

JS :: 팝업창 출력여부 확인 본문

My Programing/HTML and JavaScript

JS :: 팝업창 출력여부 확인

nkdk 2008. 6. 16. 10:33

쿠키를 이용하여 사용자측에 공지사항 체크유무를 보관한 후 체크하면 공지사항을 더이상 보이지않게 합니다.

<html>
<script language="JavaScript">
<!--

function getcookieval(offset) {  // 밸류값을 반환
var endstr = document.cookie.indexOf(";", offset);

if (endstr == -1)
  endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function getcookie(name) {  // 해당네임의 밸류값검색
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;

while (i<clen) {
  var j = i + alen;

  if (document.cookie.substring(i, j) == arg)
   return getcookieval(j);
  i = document.cookie.indexOf(" ", i) +1;
  if (i == 0)
   break;
}
return null;
}

if (getcookie("notice") != "true")  // 쿠키값이 true가 아니면 팝업창출력
window.open("notice_dsp.htm", "", "left=200, top=100, width=200, height=100");

// -->
</script>

<body>
공지창을 체크한 후 창을 닫으면<br>
체크한 날로부터 하루동안은 공지창이 나타나지 않습니다.
</body>
</html>

<!-- notice_dsp.htm _팝업창입니다. -->

<html>
<script language="JavaScript">
<!--
function setcookie(name, value) {  // 쿠키저장
var argv = setcookie.arguments;
var argc = setcookie.arguments.length;

var expires = (2<argc) ? argv[2] : null;
var path = (3<argc) ? argv[3] : null;
var domain = (4<argc) ? argv[4] : null;
var secure = (5<argc) ? argv[5] : false;

info_cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");

document.cookie = info_cookie;
}

function win_close() {  // 체크여부에 따라 쿠키정보를 입력
var notice_day = new Date();

last_day = notice_day.getTime() + (24*60*60*1000);
notice_day.setTime(last_day);

if (frm1.notice_check.checked)
  setcookie("notice", "true", notice_day, "/", null, false);
else
  setcookie("notice", "false", notice_day, "/", null, false);
}

// -->
</script>
<body onload="win_close()">
<center>


<table style="font-size:9pt">
<form name="frm1">
<tr>
<td align="center" height=20>
  <input type="checkbox" name="notice_check">
  체크하면 하루동안 공지사항이 나타나지 않습니다.
</td>
</tr>
<tr>
<td align="center">
  <input type="button" onclick="win_close(); self.close();" value="창닫기" name="close">
</td>
</tr>
</form>
</table>

</center>
</body>
</html>