JS에서 '_'가 들어간 '이름'(?) 사용

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
빛알갱이
해커
해커
Posts: 1146
Joined: 2004 01 15 20:06 36

JS에서 '_'가 들어간 '이름'(?) 사용

Post by 빛알갱이 »

ECMAscript/Javascript라고 쓰고 싶은데, 제목 길이 제한 ㅤㄸㅒㅤ문에 줄여서 썼습니다.

교보 문고 웹 사이트에 가 보면 Login.jsp가 생성하는 html 파일에서 'document.AFTER_LOGIN.submit()'와 같은 문장이 Javascript에 들어가 있습니다. 아래에 소스를 보입니다.

Code: Select all

<form name="AFTER_LOGIN" method="POST" action="http://www.kyobobook.co.kr/order/OrderStep1.jsp?CA
RT_TYPE=">

<input type="hidden" name="CART_TYPE" value="y">
.... 중략 : 다른 hidden fields ....
</form>

<script language="javascript">
try {
  if (window.opener && !opener.closed) {
     //alert("부모창이 있어버리네... 리로드~~~!!!");
     window.opener.location.reload();
  }
} catch (e) {
//alert("ERROR : " + e);
} finally {
document.AFTER_Login.submit();
}
</script>>
위에서 문제는 '_'가 들어간 '객체' (이 경우 이걸 뭐라고 불러야 할 지...) 이름을 쓸 수 없는데 쓰고 있다는 점입니다. 쉬운 해결책은 form의 name을 'afterLogin'과 같은 식으로 고치고, 'document.afterLogin'을 쓰는 것입니다.

더 나은 방법은 form에 name 대신 id를 부여하고 'AFTER_LOGIN'이든 다른 것이든, document.getElementById('AFTER_LOGIN').submit()를 쓰는 것입니다.

가장 좋은 방법은 이처럼 중간에 불필요한 Javascript와 hidden value만 들어간 html을 끼워 넣지 말고, 바로 로그인 폼에서 처리하는 것이겠지요.
이런 실수도 종종 하지 않을까 싶어서 참고로 올려 보았습니다. 교보 문고 '시스템 사용 불편 사항'을 통해 메일을 보냈습니다. 어떻게 하는지 보기로 하지요.

안심 클릭 등 ActiveX에 의존하는 결제 방법을 쓰지 않는다면 교보 문고 웹 사이트는 일단 사용에 별 지장은 없는 것 같더군요.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest