스크립트 사용시 브라우저에 [object] 라는 문구가 출력될 경우

스크립트를 처리하다보면 브라우저에 [object] 라는 문구만 출력되는 어처구니없는 상황을 맞을 경우가 있다.
아래와 같은 코드를 작성해 보자.
 a.html

 <a href=”javascript:window.open('b.html', '', 'width=640,height=480');”>클릭</a>

 b.html

 <script type=”text/javascript”>
window.opener.location.reload(true);
 </script>

위의 코드는 a.html 파일에서 클릭이라는 하이퍼링크를 클릭하게 되면 b.html을 팝업으로 띄우고 띄우면서 a.html 화면을 새로고침해주는 코드이다.
위의 코드가 정상적으로 작동하는 웹브라우저도 있으나, 화면에 [object] 라는 문구가 출력되는 경우도 있다.
이와 같은 문제는 object를 리턴하는 자바스크립트 함수를 URL 부분에 사용할 경우 발생하는 이상동작이다.
window.open() 함수는 object를 리턴하게 되고, a.html 파일에서는 그 리턴한 정보가 a 태그의 href 항목에 전달 됨으로써 화면에 [object] 문구가 출력되는 것이다.
이런 현상을 고치려면 href 항목에 자바스크립트를 연결하는 대신에 아래와 같이 onclick 항목에 연결해 주면 해결할 수 있다.
 a.html

 <a href=”javascript:void(0);” onclick=”javascript:window.open('b.html', '', 'width=640,height=480');”>클릭</a>

zemna

Programmer/Web/Mobile/Desktop

You may also like...

Leave a Reply