javascript 의 showModalDialog 사용해서 새창 제어하기
javascript 에서 showModalDialog 로 새창을 띄울 때 값을 전달해야 하는 경우가 있다.
하나의 값 뿐만 아니라 배열로 전달할수 있어야 한다. POST 로 넘길수 없기 때문에
showModalDialog 함수에서 파라미터로 넘길수 있도록 해 놓았다.
그리고 띄워진 새창에서는 window.dialogArguments 를 사용해서 부모창으로부터
넘겨준 데이터를 받아 사용하면 된다.
showModalDialog 문법은 다음과 같다.
rValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
파라미터에 대한 설명
1. sURL
부모가 호출할 자식창의 URL 주소
2. vArguments
선택사항이며 자식창으로 값을 넘길수 있는 요소이다. Object , 배열등 다양하게 넘길수가
있으며 자식창에서는 window.dialogArguments 로 찾아 사용하면 된다.
3. sFeafures
다양한 형태의 옵션값들이다.
- dialogHeight:sHeight - 다이얼로그 창의 높이를 지정한다.
- dialogLeft:sXPo - 창의 왼쪽 X값의 위치를 지정한다.
- dialogTop:sYPos - 창의 상단 Y값의 위치를 지정한다.
- dialogWidth:sWidth - 다이얼로그 창의 길이를 지정한다.
- center:{ yes/no, 1/0, on/off } - 위치지정안했을때 창의 위치를 중앙에 놓을지 여부
- help:{ yes/no, 1/0, on/off } - 도움말 보이기/보이지 않기
- resizable:{ yes/no, 1/0, on/off } - 창크기변형을 할수 있나 없나
- scroll:{ yes/no, 1/0, on/off } - 스크롤바의 유/무
- status:{ yes/no, 1/0, on/off } - 상태바를 표시/표시안함
배열로 지정해서 넘기면 window.dialogArguments[“id”]; 처럼 지정된 key 값으로 꺼내면 된다.
부모창에서 객체를 넘길때도 자식창에서 var object = window.dialogArguments 받아 그대로
사용하면 된다. 그리고 자식창에서 window.returnValue 에 값을 넣어 넘기면
window.showModalDialog 함수를 실행하고 리턴값으로 자식창이 종료할 때 값이 넘어온다.
예제에서는 msgDialog 에 자식이 넘긴값이 담기게 되는 것이다.
// 부모창
// 자식창
IE 7과 관련해서 window.showModalDialog 로 불려질 때 , <base target=”_self” />입력해야
window.close() 가 정상적으로 작동하게 된다. IE 6 또한 일부 업데이트에 대해서 같은 반응을
보일때가 있다.
'웹 프로그래밍 > 자바스크립트' 카테고리의 다른 글
자바스크립트를 개발하기 위한 에디터 종류 (1) | 2012.09.15 |
---|---|
Javascript 에서 jQuery API 를 이용한 버튼이벤트시 레이어 새창으로 표현 (0) | 2012.03.18 |
Javascript 를 이용한 동적테이블 구성 (1) | 2011.04.14 |
javascript 에서 input 값에 숫자이외의 글 입력막기 (0) | 2010.11.19 |
자식창과 부모창의 관계, iframe 내부와 메인페이지와의 관계제어 (5) | 2009.09.15 |
Ajax 라이브러리 Dojo 에서 브라우저의 뒤로 /앞으로 가기 지원 (0) | 2009.07.05 |
Ajax 라이브러리 Dojo 에서 form 을 비동기적으로 submit 하기 (0) | 2009.07.05 |
Dojo를 이용해서 간단하게 Ajax 통신 구현 예제 (0) | 2009.07.05 |