문제

<!-- <script type="text/javascript">/*<![CDATA[*/  c-- ;//]]></script> -->

위의 줄이있을 때u003Chead> 일반 HTML 페이지의 섹션, Firefox 3.5.5는 후행을 텍스트로 렌더링합니다. C-를 C-로 변경하면 그렇지 않습니다. 여기서 무슨 일이 일어나고 있는지 아이디어가 있습니까? 크런치 된 매우 큰 스크립트로 인해이 페이지에 인공물을 얻습니다. 나는 진술을 c- = 1으로 변경하고 지금은 문제를 피할 수 있지만 .... 비트/바이트가 내 a $$를 물고 있는지 알고 싶습니다.

도움이 되었습니까?

해결책

이는 Firefox가 SGML (HTML을 기반으로 한)을 엄격하게 구현했기 때문입니다. 문서가 표준 모드로로드 된 경우에만 발생합니다 (즉, DocType가 있습니다).

첫번째 <! 댓글을 시작합니다. 첫번째 -- 섹션에 들어갑니다 > 문자가 허용됩니다. 두번째 -- (스크립트에서) 섹션을 남겨 둡니다. > 문자가 허용됩니다. 그만큼 > 끝에 </script> 그런 다음 주석을 종료합니다. 다음과 같은 --> 따라서 더 이상 주석의 일부가 아니며 텍스트로 렌더링됩니다.

보다 http://www.howtocreate.co.uk/sgmlcomments.html 이 문제에 대한 포괄적 인 안내서.

또한 주목할 가치가 있습니다 HTML 4 사양 '저자는 두 개 이상의 인접 하이픈을 주석 안에 두는 것을 피해야한다'고 말합니다. HTML 5 사양 댓글은 '두 개의 연속 U+002D 하이픈-미니 누스 문자 (-)를 포함해서는 안됩니다.

당신이 찾은 해결책은 -- 의견의 중간에.

다른 팁

기술적으로 HTML (또는 XML)의 의견에 이중 하이픈을 가질 수 없습니다. 따라서 브라우저가 유효하지 않은 경우 브라우저가 "허용"하더라도 HTML 유효성 검사기에 실패해야합니다.

보다 HTML 4 사양의 댓글 섹션

나는 이것을 복제 할 수 없다. 3.0.1에 나타나지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top