>  기사  >  웹 프론트엔드  >  JavaScript 함수에서 document.write()를 사용하면 어떤 결과가 발생합니까?

JavaScript 함수에서 document.write()를 사용하면 어떤 결과가 발생합니까?

DDD
DDD원래의
2024-10-24 07:38:02739검색

What are the Consequences of Using document.write() in JavaScript Functions?

함수 호출 시 Document.write() 동작

HTML 문서에서 함수 내에서 document.write()를 호출하면 다음과 같이 예상치 못한 결과가 발생할 수 있습니다. 다음 코드:

<code class="html"><input type="checkbox" name="thebox" />
<input type="button" onClick="validator()" name="validation" value="Press me for validation" /></code>
<code class="javascript">function validator() {
    if (document.myForm.thebox.checked)
        document.write("checkBox is checked");
    else
        document.write("checkBox is NOT checked");
}</code>

문제: 유효성 검사 버튼을 클릭하면 양식 요소(체크박스 및 버튼)가 페이지에서 사라집니다.

설명:

document.write()는 HTML 문서의 출력 스트림에 직접 쓰는 강력한 함수입니다. 함수 내에서 document.write()를 호출하면 다음과 같은 의미가 있습니다.

  • 문서 로드가 완료되었기 때문에 함수가 호출될 때 문서의 출력 스트림이 이미 닫혀 있을 가능성이 높습니다.
  • 닫힌 스트림에서 document.write()를 호출하면 자동으로 문서가 열리고 기존 내용을 덮어씁니다.

이 경우 validator()가 호출되면 document.write()가 자동으로 문서를 다시 엽니다. , 양식 요소를 포함하여 전체 페이지를 지웁니다.

해결책:

이 동작을 방지하려면 다음과 같은 대체 방법을 사용하여 문서 내용을 조작해야 합니다. document.createElement() 또는 DOM 조작 API.

위 내용은 JavaScript 함수에서 document.write()를 사용하면 어떤 결과가 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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