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>
<body>
<input type="button" value="Test !" onclick="test()">
</body>
</html>
http://support.microsoft.com/kb/316174/en-us
출처 : http://blog.naver.com/kkapjin/140034642489
'컴퓨터 > 언어,프로그래밍' 카테고리의 다른 글
input 태그에서 name과 id의 차이 (0) | 2009.01.14 |
---|---|
[JavaScript] 자바스크립트 :: Math 객체, 속성, 메소드 (0) | 2009.01.14 |
[JavaScript] 자바스크립트 :: 문자열 처리 함수 모음 (0) | 2009.01.14 |
[JavaScript] 자바스크립트 :: 문자열 함수 모음 (0) | 2009.01.14 |
[JavaScript] 자바스크립트 가이드 (1) | 2009.01.13 |