IT story

스크립트 태그 내의 HTML 주석이 모범 사례입니까?

hot-time 2020. 8. 28. 08:01
반응형

스크립트 태그 내의 HTML 주석이 모범 사례입니까? [닫은]


다음 연습은 작업해야하는 인라인 JavaScript에서 매우 일반적입니다.

<script type="text/javascript">
   <!--
       // Code goes here
   //-->
</script>

요점은 JavaScript와 호환되지 않는 브라우저가 소스를 렌더링하지 못하도록하는 것임을 알고 있지만 이것이 오늘날에도 여전히 모범 사례입니까? 오늘날 사용되는 대부분의 브라우저는 JavaScript를 해석 할 수 있습니다. 현대 모바일 장치조차도 일반적으로 문제가 없습니다.

'왜 안돼?' 질문 : 최근에 누군가가 일부 페이지 깊숙한 곳에 묻혀있는 스크립트 태그 끝에 '->'앞의 '//'를 생략 한 문제를 디버깅하는 데 몇 시간을 보냈는데 이로 인해 신비한 자바 스크립트가 발생했습니다. 오류.

너 뭐하니? 이것이 여전히 '모범 사례'로 간주됩니까?


중요한 것은 오늘날 특정 브라우저가 자바 스크립트를 지원하는지 여부는 관련이 없다는 것입니다 (분명히 대다수가 그렇습니다). 거의 모든 스크립트 블록을 이해 하기 때문에 관련성이 없습니다. 즉, 자바 스크립트를 무시할 수없는 경우에도 무시해야한다는 것을 의미합니다. 그것을 해석하십시오.

Matt Kruse는 JavaScript Toolbox 사이트 에서 스크립트 블록 내에서 HTML 주석을 사용 하지 않는 이유 대해 약간 더 자세한 설명제공합니다 .

해당 페이지에서 인용 :


스크립트 블록에서 HTML 주석을 사용하지 마십시오

자바 스크립트 (1995)의 고대 시대에 Netscape 1.0과 같은 일부 브라우저는 스크립트 태그에 대한 지원이나 지식이 없었습니다. 따라서 자바 스크립트가 처음 출시되었을 때 페이지에 텍스트로 표시되지 않도록 이전 브라우저에서 코드를 숨길 수있는 기술이 필요했습니다. '핵'은 스크립트 블록 내에서 HTML 주석을 사용하여 코드를 숨기는 것입니다.

스크립트에서 HTML 주석을 사용하는 것은 나쁘다

// DON'T do this! Code is just representative on how things were done
<script language="javascript">
<!--
   // code here
//-->
</script>

오늘날 일반적으로 사용되는 브라우저는 <script> 태그를 무시하지 않으므로 더 이상 자바 스크립트 소스를 숨길 필요가 없습니다. 실제로 다음과 같은 이유로 유해한 것으로 간주 될 수 있습니다.

  • XHTML 문서 내에서 소스는 실제로 모든 브라우저에서 숨겨지고 쓸모 없게 렌더링됩니다.
  • -HTML 주석 내에서 허용되지 않으므로 스크립트의 감소 작업은 유효하지 않습니다.

나는 그것을 중단했습니다. 언젠가는 NCSA Mosaic을 놓아 주면됩니다.


당으로 W3C의 권고안 은 사용자 에이전트에서 스크립트 데이터를 숨길 주로 유용했다.

W3c 페이지 에서 인용 :

JavaScript에서 스크립트 주석 달기 JavaScript 엔진은 문자열 "<!--"이 SCRIPT 요소의 시작 부분에 나타날 수 있도록 허용 하고 줄 끝까지 추가 문자를 무시합니다. JavaScript는 "//"를 현재 줄의 끝까지 확장되는 주석의 시작으로 해석합니다. JavaScript 파서에서 "->"문자열을 숨기려면이 작업이 필요합니다.

    <SCRIPT type="text/javascript">
<!--  to hide script contents from old browsers
  function square(i) {
    document.write("The call passed ", i ," to the function.","<BR>")
    return i * i
  }
  document.write("The function returned ",square(5),".")
// end hiding contents from old browsers  -->
</SCRIPT>

아니요, 스크립트 요소가 처음 도입되었을 때 사용 된 해결 방법으로 인한 숙취입니다. 오늘날 스크립트 요소를 이해하지 못하는 브라우저는 없습니다 ( "스크립팅이 꺼져 있거나 지원되지 않기 때문에 무시해야하는 스크립트"로 이해하더라도).

XHTML에서는 적극적으로 해 롭습니다.

나는 그것의 역사에 대해 얼마 전에 썼다 .


잠시 전에 사용을 중지했습니다. 또한 Douglas Crockford 에 따르면 대부분의 브라우저에서 사용할 수있는 유일한 스크립팅 언어는 JavaScript이기 때문에 스크립트 태그에서 type 속성삭제할 수 있습니다 .


수동으로 입력하는 경우 항상 외부 js 파일을 사용하는 것이 좋습니다.

귀하의 우려 사항에 관하여 : 오늘날 대부분의 브라우저는 JavaScript 안전합니다. 그러나 때때로 사람들은 HTML을 직접 가져 오기 위해 간단한 파서를 작성할 수 있습니다. 안전한 따옴표는 이러한 클라이언트에게 정말 도움이됩니다. 또한 이전 Lynx와 같은 일부 비 JS 클라이언트는 이로부터 혜택을받습니다.


스크립트 태그 사이에 리터럴 텍스트를 포함하지 않으면 즉, src 파일에서 스크립트를로드하면 주석을 잊어 버릴 수 있습니다.


이 질문에 설명 된대로 CDATA 섹션을 사용하는 것이 좋습니다 .


나는 오래 전에 그 일을 중단했습니다. 이 시대에는 정말 필요하지 않습니다.


나는 그것을하지 않지만 요 전에 나는 w3c에서 암호로 보호 된 사이트를 확인하기 위해 갔다. 그래서 직접 입력 방식을 사용해야했습니다. 그것은 내 자바 스크립트에 대해 불평했기 때문에 모든 것에 주석을 달았습니다.

참고URL : https://stackoverflow.com/questions/808816/are-html-comments-inside-script-tags-a-best-practice

반응형