|
http://www.phpschool.com/link/qna_html/140382
<script>
<!--
~~~~
//-->
</script>
처럼 주석을 다는 이유는 무엇인가요?
어떤 소스에는 <!-- ~ --> 처럼 된곳이 있고 어떤 소스에는 <!-- ~ //--> 처럼 된곳도 있던데 어느것이 맞는 것인지요?
------------------------------------------------------------------------
자바스크립트가 동작하지 않는 브라우저(요즘엔없죠)를 위해 주석처리합니다. 만약 브라우저가 자바스크립트를 모른다면 자바스크립트소스는
안보이게되죠.
<!-- --> 어차피 //--> 하던 주석처리가 되겠져...
//는 혹시라도 자바스크립트 엔진이 -->를 자바스크립트로 인식할까 싶어 주석 처리(자바스크립트)를 한 걸로
보이네요.
먼 옛날에 자바스크립트를 지원하지 않는 브라우저때문에 오류를 방지하려고 한건데, 오히려 요즈음 XML 지원 브라우져에 따라서는 진짜
주석처리되어 자스가 실행안되는 경우도 있다고 하네요. 저는 위 목적으로는 주석처리 안합니다. 굳이 주석단다면 마직막 줄에 //--> 요
표기가 맞을 겁니다. 근데 요즘은 단지 문장을 임시로 삭제하는 용도로 많이 쓰지 않을까요?
XML XHTML 이라면 이렇게 해야...
<script type="text/javascript">
//<![CDATA[
alert('XHTML compatible');
//]]>
</script>
예, 맞습니다..^^; 저도 요즘엔 <!-- ---> 말고 이거 씁니다.
음...전 브라우져의 HTML 해석 속도를 높이기 위해 HTML이 아닌 자스 코드는 주석처리 하는줄 알았는데.. ^^; 제가 잘못
알고 잇는건가 모르겠네요...쩝!
=====================================================================================
예전에
HTML과 javascript를 공부했던 이들이라면 javascript의 HTML 소스상의 표기방식에 대해 잘 알고 있을 것이다.. 대략 아래의
표기방식으로 처리했으리라 생각한다..
1 2 3 |
<script language= "javascript" type= "text" > // 스크립트 함수 </script> |
위
표기법은 몇가지 문제를 소유하고 있는데 그 문제는 다음과 같다.
- language 속성은 표준속성이 아니다.. 현재는 type 속성에 포함되어있고 type="text/javascript" 방식으로 표기한다.. 만약 javascript가 아닌 vbscript를 사용할 경우 type="text/vbscript"로 표기하면 된다..
- 자바스크립트를 지원하지 않는 예전 브라우저와의 호환을 위해 스크립트 함수 부분을 주석처리해줘야 한다..
위
내용대로 정리하여 올바른 표기법으로 다시 처리하면 아래와 같다..
1 2 3 |
<script type= "text/javascript" > <!-- // 스크립트 함수 //--> </script> |
여기까지가
대부분이 알고있는 javascript의 표기법이다.. 그런데 시대가 바뀌어 접하게 된 XHTML의 세상에서는 이 역시 바람직한 표기법이 아니게
된다.. (HTML 4.0 기반에서는 위 표기법이 옳은 표기법이다..) XHTML(Extensible HyperText Markup
Language)에서는 XHTML 해석기가 <script ~~> 부분을 태그로 잘못 인식할 수 있는 가능성이 있어서 태그로 인식할
경우 스크립트 함수 부분에서 에러가 발생할 수 있다.. XHTML이 XML 포맷을 기반으로 하는 문법이기 때문에 발생하는 문제인데 이 문제를
해결하려면 스크립트 함수 부분을 CDATA escaping 처리를 해주면 된다.. CDATA escaping 처리를 하게 된 javascript
표기법은 아래와 같다..
1 2 3 |
<script type= "text/javascript" > <![CDATA[ 스크립트 함수 ]]> </script> |
위
표기법은 일반적인 경우는 문제가 없지만 언제나 발목을 잡게 되는 자바스크립트를 지원하지 않는 예전 브라우저(특히 CDATA를 인식하지 못하는
브라우저)를 위한 호환처리에서 문제가 발생한다.. 호환 처리를 하기 위해 주석처리 부분을 수정하게 되면 아래와 같이 변경된다..
1 2 3 4 5 |
<script type= "text/javascript" > /* <![CDATA[ */ 스크립트 함수 /*]]>*/ </script> |
꽤나
복잡한 모양새가 되버렸지만 이렇게 표기하면 XHTML에서 전혀 문제없이 javascript를 사용할 수 있게 된다.. 굳이 이렇게 복잡하게
신경써가면서 처리해야 하는 이유는 다름아닌 다양한 브라우저 유저층들을 위한 호환성 처리 및 표준을 지키게 됨으로 얻을 수 있는 정확한 데이터의
활용 때문이다.. 태터툴즈나 텍스트큐브를 사용하는 사용자들 중 HTML에서 XHTML로 마크업 언어를 변경하는 이들이 많이 있을텐데 이러한
부분을 주의한다면 좀더 표준에 다가설 수 있는 작업을 할 수 있을 것이다..
p.s
본 블로그에서도 위 부분은 아직 제대로 처리하지 못하고 있는 것이 사실인데 이 기회에 한번 스킨 소스를 살펴보려 한다.. 플러그인이 생성한
것까지 보려면 플러그인 소스도 봐야하나?? 참고로 텍스트큐브에서는 위 코드를 아래 방식으로 처리한다.. 주석처리의 방법 상 차이일 뿐 동일한
내용.. :)
1 2 3 4 5 |
<script type= "text/javascript" > // <![CDATA[ 스크립트 함수 // ]]> </script> |
참고
:
http://www.w3.org/TR/html4/interact/scripts.html
'차근차근 > JAVA Script' 카테고리의 다른 글
이메일 유효성 검사 (0) | 2014.07.29 |
---|---|
[자바스크립트] 정규식 한글만, 영어만, 숫자만 유효성 검사 (0) | 2014.07.29 |
팝업창 띄우기 (0) | 2014.07.29 |
style="display:none" (0) | 2014.07.29 |
[javascript] 팝업창 관련 자바스크립트 (0) | 2014.07.29 |