>웹 프론트엔드 >JS 튜토리얼 >`document.write()`를 사용하여 ``태그를 분할하는 이유는 무엇입니까?

`document.write()`를 사용하여 ``태그를 분할하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-11 17:10:10836검색

Why Split `` Tags Using `document.write()`?

Document.write() 스크립트 태그 분할: 이론적 근거

웹 개발에서 document.write를 사용하여 작성된 스크립트를 접하는 것은 드문 일이 아닙니다. ()는 <script> 또는 /script> 태그. 이렇게 하면 "왜 그런 기술을 사용하는가?"라는 의문이 생길 수 있습니다.</p> <p><strong>분할 이유:</strong></p> <p>대답은 HTML 파서가 &lt 내의 CDATA 섹션을 처리하는 방식에 있습니다. ;스크립트> 강요. SGML에서는 <script> 블록은 종료 태그 열기 시퀀스(예: </)를 만나면 종료되어야 하며, 브라우저는 실제 </script> 스크립트 블록 끝으로 닫기 태그를 붙입니다.

분할의 중요성:

다음 예를 고려하세요.

<script type='text/javascript'>
  document.write('<scr' + 'ipt type="text/javascript" src="script.js"></sc' + 'ript>');
</script>

이 경우 , <script> 태그가 분할되지 않은 경우 닫기 태그 시퀀스 </sc는 둘러싸는 <script> 태그의 끝으로 해석됩니다. 차단하여 스크립트를 조기에 종료합니다. 태그를 분할하면 브라우저가 전체 스크립트를 올바르게 구문 분석하고 실행할 수 있습니다.</p> <p><strong>XHTML 및 스크립트 작성:</strong></p> <p>XHTML에는 스크립트 블록에 대한 특별한 처리가 없습니다. < &는 스크립트 내에서 이스케이프되어야 합니다. 그러나 이스케이프되지 않은 문자를 사용하면 XHTML을 HTML로 구문 분석하는 브라우저에서 혼란을 초래할 수 있습니다.</p><p><strong>대체 스크립트 작성:</strong></p><p>XHTML과 HTML 구문 분석기를 모두 사용하려면 다음 접근 방식:</p><pre class="brush:php;toolbar:false"><script type="text/javascript"> document.write('\x3Cscript type="text/javascript" src="script.js"></script>');

16진수를 사용하여 문자를 이스케이프 처리합니다. 표기법을 사용하면 모든 파서가 스크립트를 올바르게 해석할 수 있습니다.

위 내용은 `document.write()`를 사용하여 ``태그를 분할하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.