메뉴 건너뛰기

조회 수 7310 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

▶▷ 알아두면 좋은 것들

 

 이번글에서는 부모창과 자식창을 연결해서 서로 제어할 수 있도록 해볼거에요.

특히, 'window' 객체 하위의 'opener' 객체를 활용해서 부모창과 자식창에 있는 텍스트 입력란이 서로 텍스트 데이터를 교환해서 출력해보도록 하겠습니다.

 

 방식만 이해한다면, 쉽게 응용할 수 있겠죠?

저 같은 경우는 비록 편법이었지만 이것과 디비를 이용해서 웹에서 대화창을 구성해봤습니다.

다른 것도 알아야 하지만 이것이 핵심 중의 하나였죠 ^^

 

 다음과 같이 opener를 활용할 수 있습니다.

window.opener.document.frm1.txt.value;

 여기서 'opener' 객체자기 자신을 연 기존 창의 window 객체를 참조합니다.

그리고 그렇게 얻어진 window 객체로부터 페이지에 접근을 할 수 있죠.

 

 소스를 보며, 같이 알아봅시다 ^^

 


소스(Source)

 

 두개의 소스가 필요합니다.

 자식창과 그 자식창을 열 부모창으로 구성되겠습니다.

 두개다 받으셔야 테스트가 가능합니다.

 

1. 부모창 소스 -  소스다운 Doit.html

<HTML>
<HEAD>
<TITLE>자바스크립트를 활용한 새창과 기존창의 텍스트 가져오기</TITLE>
</HEAD>
<SCRIPT language="javaScript">
 1. var newWindow;
 
 function open_Page(){
 2.  newWindow=window.open("Doit_1.html", "Doit", "height=100,width=200,resizable=yes");  
 }
 
 function receiver_onclick(){
      alert("자식창에 있는 폼의 TEXT를 받아옵니다.");
 3.  document.frm1.txtReceiver.value=newWindow.document.frm1.txtSender.value;  
 }
</SCRIPT>
<BODY>

<FORM name=frm1>
     <input type=button value="자식창 열기" onclick=open_Page()><br>
 4.  부모창 Sender : <input type=text name=txtSender size=10><br>
 5.  부모창 Receiver : <input type=text name=txtReceiver size=10><br>
     <input type=button value="받아오기" onclick=receiver_onclick()>
</FORM>

</BODY>

</HTML>


 

2. 자식창 소스 - 소스다운 Doit_1.html

<HTML>
<HEAD>
<TITLE>자바스크립트를 활용한 새창 열기 닫기</TITLE>
</HEAD>
<SCRIPT language="javaScript">
  
 function receiver_onclick(){
      alert("부모창에 있는 폼의 TEXT를 받아옵니다.");
 6.  document.frm1.txtReceiver.value=window.opener.document.frm1.txtSender.value;
 }
 
</SCRIPT>
<BODY>

<FORM name=frm1>
     자식창 Sender : <input type=text name=txtSender size=10><br>
     자식창 Receiver : <input type=text name=txtReceiver size=10><br>
     <input type=button value="받아오기" onclick=receiver_onclick()>
</FORM>

</BODY>
</HTML>


 


소스설명

 

1. 새창을 담을 변수 설정

var newWindow;

 

2. 자식창을 활성화

newWindow=window.open("Doit_1.html", "Doit", "height=100,width=200,resizable=yes");

- 새창을 엽니다. 자식창의 파일이름은 'Doit_1.html'이 되겠고, 새창과 관련 내용은 상단의 관련글을 참고해 주세요.

 

3. 자식창의 텍스트 입력란 Sender로부터 텍스트값 받아오기

document.frm1.txtReceiver.value=newWindow.document.frm1.txtSender.value;

- 이부분 역시 BOM을 이용해서 부모창과 자식창의 텍스트 입력란에 접근을 하는데요.

자식창의 window 객체를 담고 있는 변수 'newWindow'를 통해서 접근을 합니다.

 

4. 부모창 Sender

부모창 Sender : <input type=text name=txtSender size=10>

- 부모창의 Sender 입니다. 자식창 Receiver 에게 보내줄 텍스트를 가집니다.

 

5. 부모창 Receiver

부모창 Receiver : <input type=text name=txtReceiver size=10>

- 부모창의 Receiver 입니다. 자식창 Sender에게서 텍스트를 받습니다.

 

6. opener를 통한 자식창으로의 접근

document.frm1.txtReceiver.value=window.opener.document.frm1.txtSender.value;

- 3번과 비슷한 부분입니다. 여기서 중요한 것은 역시 opener입니다.

자식창에서 부모창의 window 객체로 접근할 수 있는 것은 opener 가 유일한데요.

이처럼 'opener'를 이용해서 부모객체의 'window' 객체를 참조하고, BOM을 이용해서 원하는 동작을 마무리 합니다.

 


List of Articles
번호 제목 날짜 조회 수
127 배너 램덤으로 부여주기 2014.03.01 5911
126 주민등록번호 체크 file 2014.03.01 5929
125 도메인 체크 2016.12.22 5930
124 iframe을 리로드 하자! 2014.03.01 5934
123 버튼 삭제 2015.02.03 5951
122 함수의 arguments 를 이름(key)으로 접근하기 2016.09.21 5976
121 iframe 자동 리사이즈 2014.03.01 5992
120 새로고침(F5) 금지 2018.03.28 6001
119 부드럽게 페이지 이동하기 2016.09.11 6003
118 셀렉트(select) change 이벤트 (split) 2016.12.23 6009
117 'open', 새창을 열어보자! file 2015.02.03 6037
116 엔코딩/디코딩 함수 2016.09.21 6040
115 input 테그안의 숫자 3자리 마다 콤마 찍기 2014.03.01 6077
114 해상도에 따라 배경 바꾸기 2014.03.01 6083
113 구구단 반복문,조건문 변경해서 만들기 2016.09.11 6092
112 현재시간 기준 날짜 계산 2016.09.21 6103
111 유효성 검사, 모든 폼에 값이 입력되도록 해보자! file 2015.02.03 6126
110 textarea의 글자수 제한 2014.02.27 6161
109 JDK6 (Java SE Development Kit 6)이하 버전 다운로드 주소 file 2016.09.11 6165
108 자바스크립트로 네트워크 연결 확인하기 (Navigator onLine Property) file 2015.06.19 6200
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved