나의질문답

checkbox 자바스크립트 실행질문이 있습니다.

예쁜꽃이피었으면 2015. 11. 10. 06:40

http://okky.kr/article/301272



안녕하세요.

제가 해결을 못해서 질문드립니다..


제가 팝업창하단에 오늘하루 열지 않기 체크박스를 추가하려고 합니다.


우선 문제가 되는 부분이 

<label><input type="checkbox" name="Notice" onChange="notice_closeWin();">오늘은 이 창을 다시 열지 않음</label>

이렇게 체크박스가 있고 체크박스를 선택한 후에 


function notice_closeWin(){

alert("notice_closeWin");

}

이렇게 자바스크립트를 실행하려고 하는데 

오류: 'notice_closeWin'이(가) 정의되지 않았습니다.

라는 에러가 뜹니다..

<input type="checkbox" name="Notice" onChange="notice_closeWin();">이 부분을

온클릭으로도 했었는데 되지 않았고 , 온클릭은 ie7에서 실행이 안된다고 해서 onchange로 바꿨습니다.

onChange="notice_closeWin(this)"

onChange="notice_closeWin()"

onChange="notice_closeWin();"

onChange="javascript:notice_closeWin()" ..

이런식으로 수정을 했었는데 다 정의되지 않았다고 합니다..;


체크박스에서 선택을 한 후에 바로 자바스크립트를 실행하려면 어떻게 체크박스를 만들어야 하나요?

답변부탁드립니다. 감사합니다.


notice_closeWin 함수의 위치가 의심되네요.


소스를 한번 봤으면 좋겠어요




<meta charset="utf-8">

<head>
<script type="text/javascript">

function close(){
	var host=window.opener;
	window.focus(); /* solves the iPad3 problem */
	window.close(); /* the actual closing we want to achieve... */
	/* makes the focus go back to opener on iPad2, fails silently on iPad3 */
	try { host.focus(); } catch() {}
}

function notice_setCookie(name,value,expiredays){
	var todayDate = new Date();
	todayDate.setDate(todayDate.getDate()+expiredays);
	document.cookie = neme + "=" + escape(value)+ "; path=/; expires=" + todayDate.toGMTString()+ ";"
	}

function notice_closeWin(){
	alert("notice_closeWin");
	if(document.form1.Notice.checked){
		notice_setCookie("Notice","done",1);//1=팝업하루동안제한
	}
	self.close();
}
function na_call(str){
	eval(str);
}
</script>
<style>
	html, body {overflow-x: hidden; overflow-y: auto;}
	img {max-width: none; display: block;}
</style>

</head>
<body>
<form name ="form1">
<div>
<img src="/popup/img.jpg" usemap="#map1" alt="브라우저 업그레이드 권장 안내" />
<label><input type="checkbox" name="Notice" onChange="notice_closeWin();">오늘은 이 창을 다시 열지 않음</label>
</div>
<map name="map1">
	<area shape="rect" coords="440,0,500,55" href="javascript:close()" alt="close" />
</map>

</form>
</body>

이렇게 했습니다. html파일입니다..



페이지 로딩시에 11번째 줄에 try구문에서 에러가 나서

밑에 함수가 생성이 안된모양이네요.

try구문 제거하고 해보셔요



와.. close()는 실행이 안되지만

체크박스는 알럿창이 뜹니다


제가 시야가 너무 좁았나 봅니다..제가 한 부분도 아니고 에러로 보이지 않아서 살펴보지 않았습니다.

감사합니다.



그런데 try { host.focus(); } catch() {} 여기에서 에러가 난 것은 어떻게 알 수 있나요?



html로 열어보니 콘솔에 찍히더라구요

반응형