팝업창 방지에서 javascript 버그..
Posted: 2004 03 23 12:43 58
팝업창이 안 뜨도록 설정한 후 다음과 같은 소스를 실행하면 에러가 납니다.
간단하게 핵심부분만 요약한 소스입니다.
---- source begin --------------------
<script language="javascript">
function submit_check() {
form = document.FORM;
if (!form.name.value) {
win = window.open("error.html", "win", "width=100,height=100");
win.focus();
return false;
} else {
return true;
}
}
</script>
<form name="FORM" onSubmit="return submit_check();">
<input type="text" name="name">
<input type="submit">
</form>
---- source end --------------------
javascript console로 확인해 보면
win = window.open 에서 팝업창을 못 열었기 때문에
win.focus() 에서 win 이 설정되지 않았다는 에러가 발생합니다.
물론 팝업 방지 기능을 껐을때는 정상 작동합니다.
이런식으로 입력값을 확인하는 부분을 작성하다가 알게된 내용인데
javascript 소스를 변경할 수도 있겠지만
이미 이런 방법으로 작성된 수많은 사이트들도 있을 것이고
그래서 Mozilla 차원에서도 조치가 취해져야 할것 같다는 생각이 드네요.
간단하게 핵심부분만 요약한 소스입니다.
---- source begin --------------------
<script language="javascript">
function submit_check() {
form = document.FORM;
if (!form.name.value) {
win = window.open("error.html", "win", "width=100,height=100");
win.focus();
return false;
} else {
return true;
}
}
</script>
<form name="FORM" onSubmit="return submit_check();">
<input type="text" name="name">
<input type="submit">
</form>
---- source end --------------------
javascript console로 확인해 보면
win = window.open 에서 팝업창을 못 열었기 때문에
win.focus() 에서 win 이 설정되지 않았다는 에러가 발생합니다.
물론 팝업 방지 기능을 껐을때는 정상 작동합니다.
이런식으로 입력값을 확인하는 부분을 작성하다가 알게된 내용인데
javascript 소스를 변경할 수도 있겠지만
이미 이런 방법으로 작성된 수많은 사이트들도 있을 것이고
그래서 Mozilla 차원에서도 조치가 취해져야 할것 같다는 생각이 드네요.