티스토리 뷰

그 상황을 한 마디로 정의하면 브라우저가 위 파일을 XHTML로 간주하고 해석하면 제대로 작동하고 HTML 로 해석하면 오작동을 하는 것이다.

FireFox,Opera,Safari 등에서는 파일의 확장자를 .xhtml로 저장하면 XHTML로 간주해서 작동하고, .html로 저장하면 제대로 작동하지 않는다. 확장자가 .xhtml 이어야 정확한 XHTML 이라고 간주하고 XML 문법 검사를 하는 것이다.


IE는 어떨까? IE는 현재(4,5,6,7, 8 beta) 어떠한 경우에도 정확한 XHTML을 지원하지 않는다. xhtml 문법을 지킨 문서를 파싱은 잘하긴 하지만 완전히 유효한 XML 기반의 XHTML로 해석하지는 않고 있다.

즉, XHTML을 파싱해서 화면에 보여주는데는 문제가 없지만, XML 관련 문법을 지원하지 않기 때문에 XML 문법 영역에 속하는 CDATA 섹션을 무시한다. 따라서 위 HTML은 alert 중간의 </script> 태그에서 Javascript가 영역이 끝났다고 간주해 버리기 때문에 Javascritp 문법 오류가 발생하게 된다.





 

 아래 그림처럼 <!-- //--> 주석을 넣지 않고 작성을 했을 때 소스를 해석하지 못하는 브라우저를 만나게 되면 모두 출력이 되게 됩니다이것은 개발자가 의도하지 않은 결과입니다웹 상에서는 어떤 일이 벌어질지 모르기 때문에 반드시 <!-- //--> 주석문을 넣어 주는 것이 좋습니다.





자바스크립트를 지원하지 않는 예전 브라우저와의 호환을 위해 스크립트 함수 부분을 주석처리해줘야 한다..

XHTML이 XML 포맷을 기반으로 하는 문법이기 때문에 발생하는 문제인데 이 문제를 해결하려면 스크립트 함수 부분을 CDATA escaping 처리를 해주면 된다.. CDATA escaping 처리를 하게 된 javascript 표기법은 아래와 같다.. 


<script type="text/javascript">
/* <![CDATA[ */
스크립트 함수
/*]]>*/
</script>





'JAVA > JSP' 카테고리의 다른 글

JSP 직접접근 막기.  (0) 2017.07.21
[JSP] 웹에서 세션(session)의 사용  (0) 2017.07.21
taglib - JSP 커스텀 캐그(Custom Tag) - 태그파일  (0) 2017.07.21
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함