2014-12-11 3 views
4

난 그냥 내 브라우저 (크롬 39, 윈도우 8)에이 코드를 시도 : -왜 Javascript는 한 줄 HTML 주석을 무시합니까?

<html> 
    <body> 
     <script> 
     <!-- 
      document.write("<h1>Hello</h1>");  
     --> 
     </script> 
    </body> 
</html> 

이 브라우저에 머리글 텍스트를 생산하고 있습니다. 하지만 약간의 변경을하면 한 줄에 HTML 주석 내용을 넣을 때

<html> 
    <body> 
     <script> 
     <!-- document.write("<h1>Hello</h1>");  --> 
     </script> 
    </body> 
</html> 

아무 것도 표시하지 않습니다. 왜 그렇습니까? 나는 HTML 주석이 Javascript 표준에 있다고 생각하지 않는다.

p.s. 자바 스크립트 주석을 넣는 방법을 알고 있습니다. 이 엉뚱한 행동에 대해서만 궁금해합니다.

+4

자바 스크립트 감동적인 있습니다 중 하나 : // 한 줄 또는/* 멀티 – longbow

답변

5

script 요소를 인식하지 못하는 브라우저에 javascript를 숨기는 방법입니다. 자바 스크립트 자바 스크립트 엔진은 SCRIPT 요소의 시작에서 발생하는 문자열 "<!--" 수 있습니다

Hiding script data from user agents

댓글 스크립트를하고 가 끝날 때까지 더 문자를 무시합니다 : 첫 번째 줄에 allways 무시됩니다 줄의. 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> 
+1

그래에 대한; 따라서 명확하게 말하면, ''구문은 자바 스크립트 주석에 유효하지 않습니다. 전혀 인식되지 않는 브라우저에서 Javascript를 숨기는 데 사용할 수있는 특별한 구문이 있습니다. * 그러나 *, 당신은 정말로 이것을 더 이상 사용할 필요가 없습니다. 모든 브라우저는 Javascript를 사용하지 않거나 지원하지 않는 경우 일반 Javascript 태그를 처리하는 방법을 알고 있습니다. –

관련 문제