>웹 프론트엔드 >JS 튜토리얼 >비동기 스크립트 로드 후 문서 쓰기 실행 실패를 처리하는 방법은 무엇입니까?

비동기 스크립트 로드 후 문서 쓰기 실행 실패를 처리하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-20 14:13:30284검색

How to Handle Document Write Execution Failure After Asynchronous Script Loading?

비동기 스크립트 로딩 후 문서 쓰기 실행 실패

비동기 스크립트 로딩 시, 로딩된 스크립트는 문서가 완전히 파싱된 후 실행되며, 닫은. 이러한 제한으로 인해 로드된 스크립트 내에서 document.write()를 사용할 수 없습니다.

오류 이유

오류 메시지 "쓰기가 불가능합니다. 비동기적으로 로드된 외부 스크립트에서 문서로'라는 메시지는 문서가 닫힌 후 스크립트가 로드되었기 때문에 document.write()를 사용하여 문서에 쓰려는 시도가 실패했음을 나타냅니다.

대체 DOM 조작

이 문제를 해결하려면 document.write() 문을 명시적인 DOM 조작으로 바꿔야 합니다. 여기에는 DOM 요소를 생성하고 다음과 같은 메서드를 사용하여 이를 상위 요소에 삽입하는 작업이 포함됩니다.

  • .appendChild()
  • .insertBefore()
  • .innerHTML

예를 들어 인라인 스크립트에서 document.write()를 사용하는 대신 다음과 같이 사용합니다.

<code class="html"><div id="container">
<script>
document.write('<span style="color:red;">Hello</span>');
</script>
</div></code>

동적으로 로드된 스크립트의 다음 코드:

<code class="javascript">var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);</code>

또는 컨테이너의 innerHTML을 설정할 수 있습니다.

<code class="javascript">var container = document.getElementById("container");
container.innerHTML = '<span style="color:red;">Hello</span>';</code>

document.write() 문을 이러한 대체 DOM 조작으로 대체 기술을 사용하면 원하는 문서 수정을 달성하는 동시에 비동기적으로 로드된 스크립트를 성공적으로 실행할 수 있습니다.

위 내용은 비동기 스크립트 로드 후 문서 쓰기 실행 실패를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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