본문 바로가기

   
Programming/Javascript

open속성과 자식창과 대화

반응형

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

       <head>

             <title></title>

             <meta name="generator" content="editplus" />

             <meta name="author" content="김종현" />

             <script type="text/javascript">

                    function Test() {

                           //브라우저창 -> 브라우저창 생성(자식창)

                           //새창 뛰우기

                           //open 속성은 매개변수가 3

                           //1. (url or local경로 만든페이지도 가능, 2. name, 3. options)

                           //2. name 의 경우는 내부적으로 윈도우가 구분하기위해 되어있는 이름이다.

                           //3. option의 경우는 자식창의 크기를 지정할수 있다. 기본적인 브라우저 상태는 없어지고 깨끗한 상태만 나온다

                           //옵션값으로 부모화면을 표현해 낼수 있다.

                           var str = "zzarungna"; //문자열

                           var str2 = ""; //빈문자열(empty string)

                           //최초 프로그램이 정해진 이름으로 만들어진 이름으로 자식이 되있는지 프로그램 안에서 확인한다.

                           //이름이 있다면 더이상 자식을 만들지 않는다.

                           /*

                          window.open("Ex07_javascript_window함수.htm", "newform", "width=200, height=200, left=500, top=100, status=1", "location=1,    resizable=yes");

                           */

 

                           //window.open("Ex07_javascript_window함수.htm", "zzarungna", "fullscreen=1");

 

                           window.open("Ex08_window.open.child.htm", "child", "width=100, height=200");

                    }

             </script>

       </head>

 

       <body>

             <!-- Ex08.htm -->

             <input type="button" value="새창열기" onclick="Test();" />

       </body>

</html>

 

*******************************************************************************************

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

       <head>

             <title></title>

             <meta name="generator" content="editplus" />

             <meta name="author" content="김종현" />

             <script type="text/javascript">

                    function CloseChild() {

 

                           //현재 창을 종료

                           if (confirm("정말 종료하시겠습니까?")) {

                                 window.close();

                           }

 

                    }

             </script>

       </head>

 

       <body>

             <!--Ex08_child.htm-->

             <h3>자식창</h3>

             <input type="button" value="창닫기" onclick="CloseChild();" />

       </body>

</html>

 


 

부모창

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>부모 자식간 대화</title>

 

       <script type="text/javascript">

             var child;

 

             function OpenChild()

             {

                    //1. 띄울 주소(,외부주소 모두 가능)

                    //2. 이름 아무거나 지정

                    //3. 3번째는 사용하지 않는다.

                    //window.open("Ex01.htm", "child", ""); //자식창 열기

                    //window.open("", "childe", ""); //빈페이지 생성

                    //window.open("http://www.naver.com", "child", "");

 

                    //2. name(중복창 실행 방지)

                    //같은 이름이 되어있는 창은 중복되서 창이 나오지 않는다.

                    //window.open("Ex01.htm", "childe", ""); //중복 새창 불가능

                    //window.open("Ex01.htm", "", ""); //이름을 안주게되면 중복 새창 가능

 

                    //3. 모양(상태)

                    // - 창의 형태, 위치, 크기, 특성..

                    //window.open("Ex01.htm", "child", "width=200 height=200 resizable=no scrollbars=yes");

 

 

                    //단독 옵션

                    //window.open("Ex01.htm", "child", "fullscreen");

 

                    //child는 자식창 입장에서 보면 자신의 window객체

                    //child.Owner = this; 이미 이문구는 실행됨

                    child = window.open("Window02_Child.htm", "child", "");

             }

 

             function TestChild()

             {

                    //자식창의 텍스트박스(txt1)에 접근하기

                    //window.document.form1.txt1

                    child.document.form1.txt1.value = "난부모 과연 대화할수 있을까?";

                    alert(child.num); //다른창의 전역변수

                    child.Test();//다른창의 함수

             }

       </script>

 

</head>

<body>

 

       <form name="form1">

             <input type="text" name="txt1" /><br />

             <input type="button" value="자식창 띄우기 " onclick="OpenChild();" />

             <input type="button" value="자식창 접근하기 " onclick="TestChild();" />

       </form>

 

 

</body>

</html>

 

 

 

 


자식창

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>난자식이당</title>

      

       <script type="text/javascript">

             var num = "ㅋㅋㅋ";

             function TestParent()

             {

                    //this.Owner : 부모창

                    //window.opener -> 부모창에서의 window와 동일

                    window.opener.document.form1.txt1.value = "자식창에서 왔습니당.";

             }

 

             function Test()

             {

                    alert("캬캬캬캬컄캬");

             }

       </script>

</head>

<body>

      

       <form name="form1">

             <input type="text" name="txt1" /><br />

             <input type="button" value=" 부모에게 접근하기 " onclick="TestParent();" />

       </form>

 

</body>

</html>

 

 

반응형