Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM Window closed 속성 – 브라우저 창 닫힘 상태 확인하기

HTML DOM의 Window closed 속성은 현재 참조 중인 창(window)이 닫혀 있는지 여부를 나타내는 불리언(boolean) 값을 반환합니다. 창이 닫혀 있으면 true, 아직 열려 있으면 false를 반환합니다.

이 속성은 읽기 전용(read-only)이며, 특히 window.open()으로 연 새 창이나 팝업창의 상태를 확인할 때 유용하게 사용됩니다. 예를 들어, 이미 닫힌 창에 접근하려고 하면 오류가 발생할 수 있으므로, 작업을 수행하기 전에 closed 속성으로 창의 상태를 먼저 검사하는 것이 안전한 코딩 습관입니다.

문법(Syntax)

다음은 closed 속성의 기본 사용 문법입니다.

불리언 값 반환:

window.closed

예제(Example)

HTML DOM Window closed 속성의 실제 동작을 확인할 수 있는 예제입니다. 이 예제에서는 URL을 입력받아 새 창을 열고(Go To), 닫은 후(Close), closed 속성을 활용해 다시 복원하는(Restore) 과정을 보여줍니다.

<!DOCTYPE html>
<html>
<head>
<title>HTML DOM Window closed</title>
<style>
    * {
        padding: 2px;
        margin: 5px;
    }
    form {
        width: 70%;
        margin: 0 auto;
        text-align: center;
    }
    input[type="button"] {
        border-radius: 10px;
    }
</style>
</head>
<body>
    <form>
        <fieldset>
            <legend>HTML-DOM-Window-closed</legend>
            <input id="urlSelect" type="url" placeholder="Type URL here..."><br>
            <input type="button" value="Go To" onclick="openWindow()">
            <input type="button" value="Close" onclick="closeWindow()">
            <input type="button" value="Restore" onclick="restoreWindow()">
        </fieldset>
    </form>
    <script>
        var urlSelect = document.getElementById("urlSelect");
        var winSource;
        function openWindow() {
            browseWindow = window.open(urlSelect.value, "browseWindow", "width=400, height=200");
            winSource = urlSelect.value;
        }
        function closeWindow(){
            if(browseWindow)
                browseWindow.close();
        }
        function restoreWindow(){
            if(browseWindow.closed)
                browseWindow = window.open(winSource, "browseWindow", "width=400, height=200");
        }
    </script>
</body>
</html>

코드 설명

  • openWindow(): 입력 필드에 입력된 URL로 새 창을 열고, 해당 URL을 winSource 변수에 저장합니다.
  • closeWindow(): 열려 있는 창이 존재하는 경우 browseWindow.close() 메서드로 창을 닫습니다.
  • restoreWindow(): browseWindow.closed 속성이 true(창이 닫힌 상태)인지 검사한 후, 저장해 둔 URL로 새 창을 다시 엽니다.

실행 결과(Output)

URL 필드에 주소를 입력한 후 'Go To' 버튼을 클릭하면 지정한 크기(400×200)의 새 창이 열립니다.

HTML DOM Window closed 속성 – 브라우저 창 닫힘 상태 확인하기

'Close' 버튼을 클릭하면 열려 있던 창이 닫히며, 이 시점에서 closed 속성은 true를 반환합니다.

HTML DOM Window closed 속성 – 브라우저 창 닫힘 상태 확인하기

'Restore' 버튼을 클릭하면 closed 속성이 true임을 확인하고, 저장된 URL로 창이 다시 열립니다.

HTML DOM Window closed 속성 – 브라우저 창 닫힘 상태 확인하기

정리

window.closed 속성은 자바스크립트에서 팝업창이나 새 창의 생명주기를 관리할 때 필수적인 도구입니다. 닫힌 창에 대한 불필요한 접근을 사전에 차단함으로써 코드의 안정성을 높일 수 있습니다. 특히 위 예제처럼 window.open()과 함께 사용하면 창을 열고, 닫고, 상태를 확인하여 복원하는 전체 흐름을 손쉽게 구현할 수 있습니다.