>  기사  >  웹 프론트엔드  >  document.write()가 페이지를 지우는 이유는 무엇입니까?

document.write()가 페이지를 지우는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-24 06:59:30752검색

Why Does document.write() Clear the Page?

Document.write가 페이지를 지우는 이유는 무엇입니까?

JavaScript에서 document.write() 메서드를 사용할 때 프로그래머는 종종 이상한 문제에 직면합니다. 동작: onClick과 같은 이벤트 핸들러 내에서 document.write()를 호출하면 문서가 지워질 수 있습니다.

이 예상치 못한 결과를 이해하려면 document.write()의 특성을 이해하는 것이 중요합니다. 이 함수는 브라우저에 표시되는 문서를 나타내는 연속적인 데이터 흐름인 문서 스트림에 씁니다.

제공된 코드 예제에서:

<code class="html"><form name="myForm">
    <input type="checkbox" name="thebox" />
    <input type="button" onClick="validator()" name="validation" value="Press me for validation" />
</form>

<script type="text/javascript">
    function validator() {
        if (document.myForm.thebox.checked) {
            document.write("checkBox is checked");
        } else {
            document.write("checkBox is NOT checked");
        }
    }
</script></code>

validator() 함수 "유효성 검사" 버튼을 클릭하면 트리거됩니다. 상황은 다음과 같습니다.

  1. 이 시점에서 문서 로드가 완료되었을 가능성이 높습니다. 이는 문서 스트림이 닫혔다는 의미입니다.
  2. document.write()를 호출하면 자동으로 document.open( ), 현재 문서를 지워 기존 요소를 모두 제거합니다.
  3. 그 후 document.write()에 지정된 텍스트가 이제 비어 있는 문서에 렌더링됩니다.

결과적으로, 전체 문서가 새로 고쳐지고 이전 내용이 document.write()의 출력으로 바뀌기 때문에 양식 요소(체크박스 및 버튼)가 페이지에서 제거됩니다.

따라서 document.write()로 작업할 때 , 문서 스트림에 쓰기 전에 명시적으로 document.open()을 사용하여 문서 스트림이 열려 있는지 확인하는 것이 중요합니다. 그렇지 않으면 문서를 지우는 예측할 수 없는 동작으로 인해 의도된 기능이 중단될 수 있습니다.

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

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