-
js/jsp/jquery 부모창,자식창 팝업창 띄우기 , 팝업창 닫기 , window.open(), .close()공부 2024. 1. 15. 19:05
window.open을 이용한 기본적인 방법입니당
var popup; function 함수명(key(있을경우)) { console.log("팝업창 열림"); popup = window.open('팝업창에띄울URL?key=' + value, '사용할name', '추가할 option'); }url : 팝업창에서 보여줄 url, 난 넘겨줄 키가 있어서 넣었는데 없으면 안넣으면 된다
name : 팝업창 속성 및 이름 지정
- _blank : 기본값
- _parent : 부모 프레임에 열립니다.
- _self : 현재 페이지를 대체합니다.
- _top : 로드된 프레임셋을 대체합니다.
- name(임의의 이름) : 새 창이 열리고 창의 이름을 지정합니다. 동일한 이름에 다시 open() 을 하면 기존의 열린창의 내용이 바뀝니다. 다른 이름을 사용하면 또다른 새창이 열립니다.
출처: https://offbyone.tistory.com/312 [쉬고 싶은 개발자:티스토리]
option : 필요한 설정 지정
features 설명 값 기본값 width 창의 가로 크기, 최소값 100 픽셀단위 숫자 height 창의 세로 크기, 최소값 100 픽셀단위 숫자 top 창의 위치 : 위로 부터 간격 픽셀단위 숫자 left 창의 위치 : 왼쪽으로 부터 간격 픽셀단위 숫자 popup 팝업창 실행 여부 설정 yes / no noopener 원래(부모)창을 접근할 수 없도록 만듬 noreferrer Referer헤더를 생략하고 noopener를 true로 설정 IE Only fullscreen 전체 창 여부 (IE only) yes / no no title 타이틀바 활성화 여부 (IE only) yes / no yes location 주소창 활성화 여부 (IE only) yes / no yes menubar 메뉴바 활성화 여부 (IE only) yes / no yes toolbar 툴바 활성화 여부 (IE only) yes / no yes scrollbars 스크롤바 활성화 여부 (IE only) yes / no yes resizable 창 크기 변경 활성화 여부 (IE only) yes / no yes 출처: https://dev-handbook.tistory.com/44 [Developer's Handbook:티스토리]
나는 iframe pdf viewer를 사용하는 부모창에서 팝업창 띄우기를 해보려고한다 !
[내 창에서 잘라온 일부]

이런식으로 왼쪽은 pdf뷰어 , 오른쪽은 에디터로 돼있는 창이 있다 이 프레임들 밖에 "크게보기" 버튼을 만들고 버튼을 누르면 왼쪽에 있는 pdf 뷰어가 새창으로 열려야한다.
이렇게 먼저 버튼을 생성
<button type="button" onclick="openPopup('${dataId}');" class="">크게보기</button>그리고 위에 써둔 공식처럼 openPopup 이라는 함수를 만들어주었다.
/* 팝업 창 생성 */ var popup; function openPopup(dataId) { console.log("팝업창 열림"); popup = window.open('내url?dataId=' + dataId + '&open=y', 'viewer_popup', 'width=1000,height=1000'); popupOptionDiv(); }파라미터는 각자 상황에 맞게 쓰면 된다
**여기서 open=y 를 왜 추가했냐면
+팝업으로 열리는 pdf프레임의 버튼들 옆에 닫기버튼을 만들어주기위해서다.
조건문을 추가해서 open=y일때만 닫기버튼이 생기도록 처리해주었다.
그리고 추가할 조건은
팝업이 열리면 : 부모창 pdf뷰어는 사라지고 에디터창이 커지게
팝업을 닫으면 : 원상복귀
였다
그냥 맞는 div의 css확인하고 상황에 맞게 바꿔주면된다
/* 팝업창 닫기 (pdf,에디터 원복)*/ function closePopup() { console.log('팝업창 닫기'); opener.restore(); window.close(); }팝업창 관련 jsp가 있는 부분에 스크립트를 추가했다.
window.close();가 되기전에 opener.restore()로 부모창에서 스크립트 호출하기
/*팝업오픈 script*/ function popupOptionDiv() { $('.left').css('display', 'none'); $('.right').css('display', 'block'); $(".edit_wrap").css("display", "block"); console.log("block"); } /* 팝업클로즈 script */ function restore() { $(".edit_wrap").css("display", "grid"); $('.left').css('display', ''); $('.right').css('display', ''); }이렇게 해주면 된당
'공부' 카테고리의 다른 글
사용자 세션 (HttpSession) 가져오기 / 세션 정보 수정 후 세션 업데이트 하기 (0) 2024.01.18 개념이해 (0) 2024.01.18