본문 바로가기
프로그램

jQuery를 이용한 부모 창 특정 아이템 호출

by 바람사이 2024. 9. 8.

 

 

 

 

jQuery를 이용한 부모 창 특정 아이템 호출

 

 

팝업 창에서 jQuery를 사용하여 부모 창의 특정 아이템(예: 특정 HTML 요소)을 호출하거나 조작하고 싶다면, window.opener 객체를 이용하여 부모 창의 DOM에 접근할 수 있습니다. 이를 통해 부모 창의 특정 아이템에 접근하고, 이를 조작할 수 있습니다.

 

 

예제 코드

1. 부모 창 (parent.html)

부모 창에서는 조작할 아이템(예: 특정 요소)을 정의합니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>부모 창</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        // 팝업 창 열기
        function openPopup() {
            window.open('popup.html', 'popupWindow', 'width=400,height=300');
        }
    </script>
</head>
<body>
    <h1>부모 창</h1>
    <p id="targetElement">이 텍스트가 팝업 창에서 변경될 것입니다.</p>
    <button onclick="openPopup()">팝업 창 열기</button>
</body>
</html>

 

 

 

2. 팝업 창 (popup.html)

팝업 창에서는 부모 창의 특정 아이템을 조작합니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>팝업 창</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        $(document).ready(function() {
            // 부모 창의 특정 아이템(ID가 targetElement인 요소) 호출 및 변경
            if (window.opener && !window.opener.closed) {
                window.opener.$('#targetElement').text('팝업 창에서 이 텍스트를 변경했습니다.');
            }

            // 팝업 창 닫기
            $('#closePopup').click(function() {
                window.close();
            });
        });
    </script>
</head>
<body>
    <h1>팝업 창</h1>
    <button id="closePopup">팝업 창 닫기</button>
</body>
</html>

 

 

설명

  • window.opener: 팝업 창에서 부모 창을 참조합니다.
  • window.opener.$('#targetElement'): 부모 창의 jQuery 객체를 사용하여 id가 targetElement인 요소에 접근합니다.
  • .text('팝업 창에서 이 텍스트를 변경했습니다.'): 부모 창의 특정 요소의 텍스트를 변경합니다.

주의 사항

  • 부모 창과 팝업 창이 같은 도메인 내에 있어야 window.opener 객체에 접근할 수 있습니다.
  • 팝업 창이 닫힌 후 window.opener를 사용하려고 하면 오류가 발생할 수 있습니다. 따라서 window.opener가 null이 아니고, 부모 창이 닫히지 않았는지 확인하는 것이 중요합니다.

이 코드를 사용하면 팝업 창에서 부모 창의 특정 아이템을 쉽게 조작할 수 있습니다.

 

 

 

 

 

 

 

#jQuery #javascript #특정아이템호출 #프로그래밍

 

 

 

 

반응형

댓글