Program Club

JavaScript 블록에 HTML 주석을 사용하는 것이 여전히 타당합니까?

proclub 2020. 11. 14. 11:15
반응형

JavaScript 블록에 HTML 주석을 사용하는 것이 여전히 타당합니까?


과거에 사람들은 "오래된"브라우저가 스크립트를 표시하는 것을 방지하기 위해 JavaScript 블록 주위에 HTML 주석 태그를 감싸 곤했습니다. Lynx조차도 JavaScript를 무시할 수있을만큼 똑똑한 데, 왜 일부 사람들이 계속이 작업을 수행합니까? 요즘 타당한 이유가 있습니까?

<script type="text/javascript">
<!--
//some js code
//-->
</script>

편집 : 내가 만난 한 가지 상황이 있습니다. Dreamweaver와 같은 일부 코드 편집기는 "디자인보기"에서 JavaScript 문자열 내에서 인용 된 HTML로 인해 혼동되어 페이지의 일부로 표시하려고합니다.


아뇨, 절대 아닙니다. 모든 사용자 에이전트, 검색 엔진 스파이더 또는 요즘에는 자바 스크립트를 실행할 수없는 경우 무시할만큼 똑똑합니다.

이것이 도움이되는 아주 짧은 기간이었고 1996 년경이었습니다.


이를 필요로하는 브라우저가 대체로 웹에서 사라졌기 때문에 더 이상이 작업을 수행 할 이유가 없습니다.

실제로 이렇게하면 특정 이전 브라우저가 XHTML을 사용하는 경우 페이지를 해석하려는 시도에 의도하지 않은 문제가 발생할 수 있습니다-from developer.mozilla.org :

  • Mozilla 1.1 + / Opera 7

    CSS를 적용하거나 JavaScript를 실행하지 마십시오.

  • Netscape 7.0x / Mozilla 1.0.x

    CSS를 적용하지 않고 JavaScript를 실행합니다.

  • Internet Explorer 5.5 이상

    문서를 표시 할 수 없습니다.

이 사이트는 위에서 언급 한 몇 가지 문제의 예에 대한 링크도 제공합니다 .


그래도 CDATA를 사용해야합니다 ...

<script type="text/javascript" charset="utf-8">
/* <![CDATA[ */

/* ]]> */
</script>

코드에 '<', '>', '&'등이 있으면 코드가 유효성을 검사하지 않기 때문입니다. :)


아니, 아무도 이걸 필요로하지 않아요. 만약 당신이 필요로한다면, 당신은 신경 써야 할 더 많은 문제가 있습니다. 이를 필요로하는 브라우저를 정말로 지원하려면 더 많은 것을주의해야합니다. CSS 부족에 대해 이야기하지도 않습니다!

그러나 더 큰 문제는 사람들이 이것을 잘못하고 있다는 것입니다. 실제로 귀하의 예는 잘못되었습니다.

-->

읽어야합니다

//-->

둘째, "text / JavaScript"라는 속성을 입력하면 무엇이 잘못되었는지도 알 수 있습니다. "text / javascript"(모두 소문자) 였지만 이것은 쓸모 없고 ( IANA 목록 참조 ) 이제 "application / javascript"여야합니다 ( 다른 IANA 목록 참조) . 그러나 JS Guru 인 Douglas Crockford가 말했습니다. 그냥 놔둬 야합니다.

아무도 언급하지 않은 또 다른 문제는 이것입니다. HTML 주석 내에서 "-"는 허용되지 않으며 이는 "x--"를 사용하여 x를 1 씩 감소시킬 수 없음을 의미합니다.


CDATA 블록을 사용할 필요가 없기 때문에 HTML 4.01 Strict를 docttype으로 사용하는 것을 선호하지만 Staicu는 다음 구문을 사용한다고 생각했습니다.

<script charset="utf-8">
//<![CDATA[

//]]>
</script>

둘이 동등할까요? 누군가가 다른 것보다 이점이 있는지 알고 있습니까?

참고 URL : https://stackoverflow.com/questions/204813/does-it-still-make-sense-to-use-html-comments-on-blocks-of-javascript

반응형