2009-12-04 5 views
1
<!-- <script type="text/javascript">/*<![CDATA[*/ c-- ;//]]></script> --> 

렌더링하게, 파이어 폭스 3.5.5은 후행 렌더링 - 텍스트로 >. 내가 c--를 c-로 바꾼다면 그렇지 않습니다. 여기에 무슨 일이 일어나고 있는거야? 나는 크런치 된 매우 큰 스크립트로 인해 내 페이지에 유물을 얻고 있습니다. 내가 진술을 C- = 1로 바꿀 수 있고 지금은 문제를 피할 수 있지만 .... 나는 어떤 비트/바이트가 내 $$을 물고 있는지 알고 싶다.이중 하이픈 내가 일반 HTML 페이지의 < 머리 > 섹션에서 위의 라인이있을 때 파이어 폭스가 이상하게

+0

이 보이는 참조 : https://bugzilla.mozilla.org/show_bug.cgi?id=477200 – Rob

+0

이 아주 가까이 보인다. 확인을 해준 덕분에 –

답변

8

이것은 Firefox가 HTML 기반의 SGML을 엄격하게 구현 한 덕분입니다. 이는 문서가 표준 모드로로드 된 경우에만 발생합니다 (즉, DOCTYPE이 있음).

첫 번째 <!가 주석을 시작합니다. 첫 번째 --> 문자가 허용되는 섹션에 입력됩니다. 두 번째 -- (스크립트에서)은 > 자 허용 섹션을 벗어납니다. >의 끝에있는 </script>은 주석을 끝냅니다. 따라서 다음 은 더 이상 주석의 일부가 아니며 텍스트로 렌더링됩니다.

해당 문제에 대한 포괄적 인 안내서는 http://www.howtocreate.co.uk/SGMLComments.html을 참조하십시오.

그 또한 가치 HTML 4 Specification는 '저자 댓글 내부에 두 개 이상의 인접한 하이픈 퍼팅 피해야한다'를 말한다 것을주의하고 HTML 5 Specification 댓글이 없습니다해야한다고 '두 개의 연속 U + 002D 하이픈-MINUS 문자가 포함 된 (-)'.

발견 된 해결책은 댓글 중간에 --을 포함하지 않는 것입니다.

+0

Firefox에서 구현 된 SGML과 같은 것은 아니지만 HTML5조차도 주석에서 두 개의 하이픈을 사용할 수 없습니다 : http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html #코멘트 – mercator

0

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

+0

3.5.5에서 매우 일관성이있다. –

+0

이것은 Firefox 3.0.5에서 발생하지만 DOCTYPE이있는 경우에만 발생합니다. –

1

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

이 버그는 관련이 같은 Comment section of HTML 4 Specification

관련 문제