문서에서 쓰기 실행: 비동기적으로 로드된 스크립트의 문제는 무엇입니까?
비동기적으로 로드된 스크립트로 작업할 때 다음과 같은 문제가 발생할 수 있습니다. 오류 "문서에서 '쓰기'를 실행하지 못했습니다. 명시적으로 열지 않는 한 비동기적으로 로드된 외부 스크립트에서 문서에 쓸 수 없습니다." 이는 문서가 완전히 구문 분석되고 닫힌 후 비동기 스크립트가 로드되어 document.write()와 같은 함수를 사용하여 DOM을 직접 변경할 수 없기 때문에 발생합니다.
솔루션 이해
이 문제를 해결하려면 document.write()를 명시적인 DOM 조작으로 바꿔야 합니다. 콘텐츠 자동 삽입에 의존하는 대신 DOM 요소를 수동으로 생성하고 적절하게 삽입해야 합니다.
예
빨간색 문자를 삽입하는 다음 인라인 스크립트를 고려하세요. "Hello" 텍스트를 "컨테이너" div에 추가:
<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>
명시적인 DOM 조작을 채택하면 비동기식으로 로드된 스크립트가 문서와 효과적으로 상호 작용하도록 보장할 수 있습니다. 지연된 스크립트 실행으로 인한 제한 사항.
위 내용은 비동기적으로 로드된 스크립트가 있는 문서에 쓰기를 실행할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!