JavaScript 종결되지 않은 문자열 상수입니다.
페이지 정보
본문
[방법1]
자바스크립트 함수 호출시 인자값에 줄바꿈이 있을 경우 발생합니다.
[방법2]
SCRIPT 태그는 XML 처럼 self closing tag를 사용하면 스크립트 태그의 끝을 인식하지 못한다. 쉽게 말하자면 /> 을 사용하여 SCRIPT 태그를 닫으면 다음에 </script> 태그를 만날 때까지의 내용을 브라우저가 전혀 스크립트로 인식하지 않는다는 것이다. 위 코드를 다음과 같이 수정하면 매우 잘 작동한다.
<script src="test.js"></script>
스크립트 코드 내에 </script> 문자열이 포함되면 브라우저는 그것을 스크립트의 끝으로 간주해 버린다는 것이다. 예를 들어 다음과 같은 스크립트는 정상적으로 작동하지 않으며, "종결되지 않은 문자열 상수입니다" 라는 오류 메시지를 뿌린다.
<html>
<head>
<script language="javascript">
function test() {
alert("<script> and </script> test");
}
</script>
</head>
<body>
<input type="button" value="Test !" onclick="test()">
</body>
</html>
이유는 스크립트의 문자열 내에 사용된 </script> 문자열이 실제 스크립트의 종료 태그로 인식되어 버리기 때문이다.
이를 해결하기 위해서는 직접적으로 </script> 문자열이 스크립트 코드 내에서 사용되지 않도록 하면 된다.
자바 스크립트의 경우 백슬래시 문자(\)를 사용하여 <\/script> 라는 문자열을 사용하면 된다.
자바 스크립트는 백슬래시 문자를 무시하기 때문에 정상적으로 문자열이 처리된다.
ASP 코드에서 많이 사용되는 VB 스크립트의 경우에는 chr(60) & "/script>" 와 같은 코드를 사용하여 직접적으로 </script> 라는 문자열이 사용되지 않도록만 하면 된다.
위 코드를 정상 작동하도록 수정하면 다음과 같다.
<html>
<head>
<script language="javascript">
function test() {
alert("<script> and <\/script> test"); // use back slash
}
</script>
</head>
참고사이트
http://blog.naver.com/kkapjin?Redirect=Log&logNo=140034642489
댓글목록
등록된 댓글이 없습니다.