웹상에서 다수의 입력항목이 있는 페이지에서 데이터를 입력하는 도중 실수로 [esc]나 [back space] 키를 누르면
History back으로 인식하여 새로 입력한 모든 정보가 날라갑니다.
그렇게 되고나면 복구도 불가능하고 오로지 다시 입력하는 수 밖에 없습니다.
사용자의 실수 방지 차원에서 가능한 잊지않고 넣으면 좋을 것 같습니다..
/*
******************************************
* 2005-08-10
* 박 이 수
* esc와 back-space 클릭 방지
******************************************
*/
document.onkeydown=checkKey;
function checkKey(){
//alert("You pressed a following key: "+window.event.keyCode);
// ESC Key 누를 때 데이터 사라지는 것 방지
if(window.event.keyCode == 27){
window.event.returnValue = false;
return;
}
// back-space 누를 때
if(window.event.keyCode == 8){
// TextEdit가 아니면 작동하지 않도록
if(!window.event.srcElement.isTextEdit){
window.event.returnValue = false;
return;
}else if(window.event.srcElement.readOnly || window.event.srcElement.disabled){
// readOnly나 disabled인 경우 작동하지 않도록
window.event.returnValue = false;
return;
}
}
/* 특정 부분을 출력할때 쓰임 */
function print_content(p_service){
//alert("dfdf");
window.open("/html/print_content.html","","directories=0,location=0,menubar=0,scrollbars=0,toolbar=0,width=500,height=500, left=5000, top=5000;");
부모창인 index.htm에 삽입 <html> <head> <title>..</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> <script language="javascript"> <!-- function getCookie(name) { var Found = false var start, end var i = 0 // cookie 문자열 전체를 검색 while(i <= document.cookie.length) { start = i end = start + name.length // name과 동일한 문자가 있다면 if(document.cookie.substring(start, end) == name) { Found = true break } i++ } // name 문자열을 cookie에서 찾았다면 if(Found == true) { start = end + 1 end = document.cookie.indexOf(";", start) // 마지막 부분이라 는 것을 의미(마지막에는 ";"가 없다) if(end < start) end = document.cookie.length // name에 해당하는 value값을 추출하여 리턴한다. return document.cookie.substring(start, end) } // 찾지 못했다면 return "" } function openMsgBox() { var eventCookie=getCookie("memo"); if (eventCookie != "no") window.open('팝업창파일','_blank','width=300,height=300,top=50,left=150'); //팝업창의 주소, 같은 도메인에 있어야 한다. } openMsgBox(); //--> </script> </head> <body> </body> </html>
팝업창인 pop.htm에 삽입 <html> <head> <title></title> <head> <script language="JavaScript"> <!-- function setCookie( name, value, expiredays ) { var todayDate = new Date(); todayDate.setDate( todayDate.getDate() + expiredays ); document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" } function closeWin() { if ( document.myform.event.checked ) setCookie("memo", "no" , 1); // 1일 간 쿠키적용
부모창인 index.htm에 삽입 <html> <head> <title>..</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> <script language="javascript"> <!-- function getCookie(name) { var Found = false var start, end var i = 0 // cookie 문자열 전체를 검색 while(i <= document.cookie.length) { start = i end = start + name.length // name과 동일한 문자가 있다면 if(document.cookie.substring(start, end) == name) { Found = true break } i++ } // name 문자열을 cookie에서 찾았다면 if(Found == true) { start = end + 1 end = document.cookie.indexOf(";", start) // 마지막 부분이라 는 것을 의미(마지막에는 ";"가 없다) if(end < start) end = document.cookie.length // name에 해당하는 value값을 추출하여 리턴한다. return document.cookie.substring(start, end) } // 찾지 못했다면 return "" } function openMsgBox() { var eventCookie=getCookie("memo"); if (eventCookie != "no") window.open('팝업창파일','_blank','width=300,height=300,top=50,left=150'); //팝업창의 주소, 같은 도메인에 있어야 한다. } openMsgBox(); //--> </script> </head> <body> </body> </html>
팝업창인 pop.htm에 삽입 <html> <head> <title></title> <head> <script language="JavaScript"> <!-- function setCookie( name, value, expiredays ) { //같은 창에서만 안띄움. //expiredays 값은 상관없음. document.cookie = name + "=" + escape( value ) + "; path=/;"; function closeWin() { if ( document.myform.event.checked ) setCookie("memo", "no" , 1); // 1일 간 쿠키적용
부모창인 index.htm에 삽입 _새로 브라우져를 열면 팝업창이 뜸 <html> <head> <title>..</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> <script language="javascript"> <!-- function getCookie(name) { var Found = false var start, end var i = 0 // cookie 문자열 전체를 검색 while(i <= document.cookie.length) { start = i end = start + name.length // name과 동일한 문자가 있다면 if(document.cookie.substring(start, end) == name) { Found = true break } i++ } // name 문자열을 cookie에서 찾았다면 if(Found == true) { start = end + 1 end = document.cookie.indexOf(";", start) // 마지막 부분이라 는 것을 의미(마지막에는 ";"가 없다) if(end < start) end = document.cookie.length // name에 해당하는 value값을 추출하여 리턴한다. return document.cookie.substring(start, end) } // 찾지 못했다면 return "" } function openMsgBox() { var eventCookie=getCookie("memo"); if (eventCookie != "no") window.open('팝업창파일','_blank','width=300,height=300,top=50,left=150'); //팝업창의 주소, 같은 도메인에 있어야 한다. } openMsgBox(); //--> </script> </head> <body> </body> </html>
팝업창인 pop.htm에 삽입 <html> <head> <title></title> <head> <script language="JavaScript"> <!-- function setCookie( name, value, expiredays ) { //같은 창에서만 안띄움. //expiredays 값은 상관없음. document.cookie = name + "=" + escape( value ) + "; path=/;"; } function closeWin() { if ( document.myform.event.checked ) setCookie("memo", "no" , 1); // 1일 간 쿠키적용 } //--> </script> </head> <body onunload="closeWin()"> <form name="myform"> <input type="checkbox" name="event">다음부터 이 창을 열지않음 <input type=button value="닫기" omclick="self.close()"> </form> </body> </html>
<html> <head> <title>..</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> <script language="JavaScript"> <!-- function redirectPage() { var url800x600 = "main1.html"; //800*600 에서 열릴문서 var url1024x768 = "main2.html"; //1024*768 에서 열릴문서 var url1152x864 = "main3.html"; //1152*864 에서 열릴문서
32.이미지사이즈에 맞게 새창이 열리며 휠마우스 효과를 내줌 그리고 메인(imgmove-main.html)에서 새창 띄워주는 부분
<SCRIPT LANGUAGE="JavaScript"> <!-- Begin function cnjOpen() { window.open('img-move.html','cnjOpenWin','width=350,height=250,toolbar=0,scrollbars=0,location=0,status=0,menubar=0,resizable=0'); } // End --> </script> <a href="javascript:cnjOpen()"><img src="test.jpg" width="200" height="150" border="0"></a> </center>
이 부분은 이미지를 보여줄 새창(img-move.html)입니다. <style> body {cursor:move;} </style> <body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 omLoad="fitWindowSize();">
<SCRIPT LANGUAGE="JavaScript"> // 이미지는 별도로 제공하지 않습니다. <!-- CGI 와 JavaScript가 만났을 때=CnJ ☞ http://www.cginjs.com --> <!-- CGI 와 JavaScript가 만났을 때=CnJ ☞ webmaster@cginjs.com --> var ie = 1; var windowX, windowY; var bLargeImage = 0; var x,y;
if(Found == true) { start = end + 1 end = document.cookie.indexOf(";", start) if(end < start) end = document.cookie.length return document.cookie.substring(start, end) } return "" }
function win_open(t_url) { //v2.0 var noticeCookie=getCookie("i_don_want"); //i_don_want: 쿠키이름 if (noticeCookie != "no") window.open(t_url,'','width=570,height=880,left=0,top=0') } function win_open2(t_url) { //v2.0 window.open(t_url,'','width=800,height=580,left=0,top=0,scrollbars=yes,resizable=yes')
} //--> </SCRIPT>
<body onload="javascript:win_open('popup.html')">
2. popup 화일에서 ( 여기서는 popup.html )
<script language="JavaScript"> function setCookie( name, value, expiredays ) { var todayDate = new Date(); todayDate.setDate( todayDate.getDate() + expiredays ); document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" }
function closeWin() { if ( document.cnjform.notice.checked ){ setCookie("i_don_want", "no" , 1); //i_don_want: 쿠키이름 self.close(); } } </script>