> 웹 프론트엔드 > JS 튜토리얼 > 왜 일부 웹사이트에서는 `document.write()`를 사용하여 `` 및 `` 태그를 분리합니까?

왜 일부 웹사이트에서는 `document.write()`를 사용하여 `` 및 `` 태그를 분리합니까?

Patricia Arquette
풀어 주다: 2024-12-12 12:53:12
원래의
633명이 탐색했습니다.

Why Do Some Websites Split `` and `` Tags with `document.write()`?

Document.write() 및 스크립트 태그 분할: 수행되는 이유

document.write() 메서드를 사용하여 스크립트를 생성하는 경우 태그를 사용하면 일부 웹사이트에서는 <script> 및 </script> 여러 호출에 걸쳐 태그를 지정합니다. 이 기술은 스크립트 블록의 조기 종료를 방지하기 위해 사용됩니다.

브라우저는 일반적으로 SGML 규칙을 사용하여 HTML을 구문 분석합니다. SGML에 따르면 스크립트 블록은 <[/)와 같은 ETAGO(끝 태그 열기) 시퀀스로 끝나야 합니다. 그러나 실제로 브라우저는 적절한 위치에서만 CDATA 스크립트 블록 구문 분석을 종료합니다. 태그를 닫습니다.

따라서 전체 <script> 및 </script> 단일 document.write() 호출 내의 태그로 인해 태그 자체 내에서

이 문제를 방지하려면 태그를 분할하여 브라우저는 스크립트를 올바르게 해석하고 실행합니다. 분할은 < 및 /를 사용하면 전체 시퀀스가 작성됩니다.

이 분할 기술을 사용하는 것보다 더 나은 대안은 < 또는 & 문자를 스크립트 내에서 만들고 다음과 같이 스크립트 요소를 만듭니다.

document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>');

이 접근 방식은 HTML5 및 XHTML 문서 모두에 적용되므로 상호 호환성을 보장하고 브라우저 혼란을 피할 수 있습니다.

위 내용은 왜 일부 웹사이트에서는 `document.write()`를 사용하여 `` 및 `` 태그를 분리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿