메뉴 건너뛰기

tnt_lang

popup창의 depth가 3단계이고, 최상단의(프레림에 상관없이)페이지에
login.jsp를 출력하는 경우

if (needToLogin) {
out.println(
  "<script language='javascript'>" +
   "if(parent.opener == null || parent.opener == 'undefined') {"+
//"        alert('parent.opener설정안됨');"+
// popup창이 현재 하나도 없으므로 현재 화면에 login.jsp페이지 출력
    "   parent.top.location.href='/login.jsp?goPage=" +goPage+"';"+
    "} else if(parent.opener != null && parent.opener != 'undefined') {"+
//"        alert('parent.opener설정됨');"+
// opener가 있는 경우만 내부의 opener를 체크해야 에러발생하지 않음
// popup창이 1개 확인 됬으므로  내부의 2번째 창이 있는지 확인
    "        if(parent.opener.opener == null || parent.opener.opener == 'undefined') {"+
// "                alert('parent.opener.opener설정안됨');"+
// popup창이 현재 1개 이므로 opener화면에 login.jsp페이지 출력
    "       parent.opener.top.location.href='/login.jsp?goPage=" +goPage+"';"+
    "                window.top.close(); " + 
// 현재창 닫기
    "        } else if(parent.opener.opener != null && parent.opener.opener != 'undefined'){"+
//"                alert('parent.opener.opener설정됨');"+
// opener.opener가 있는 경우만 내부의 opener를 체크해야 에러발생하지 않음
// popup창이 2개 확인 됬으므로 내부의 3번째 창이 있는지 확인
  "                if(parent.opener.opener.opener == null || parent.opener.opener.opener == 'undefined') {"+
//"                        alert('parent.opener.opener.opener설정안됨');"+
// popup창이 현재 2개 이므로 opener.opener화면에 login.jsp페이지 출력
   "                        parent.opener.opener.top.location.href='/login.jsp?goPage=" +goPage+"';"+
   "                        parent.opener.close(); " +                                                        // 부모창닫기(1단계)
  "                        window.top.close(); " +                                                                // 현재창 닫기
  "                } else if(parent.opener.opener.opener != null && parent.opener.opener.opener != 'undefined') {"+
//"                        alert('parent.opener.opener.opener설정됨');"+
// popup창이 현재 3개 이므로 opener.opener.opener화면에 login.jsp페이지 출력
  "                        parent.opener.opener.opener.top.location.href='/login.jsp?goPage=" +goPage+"';"+
  "                        parent.opener.opener.close(); " +                                        // 부모창닫기(2단계)
  "                        parent.opener.close(); " +                                                        // 부모창닫기(1단계)
  "                        window.top.close(); " +                                                                // 현재창 닫기
  "                }"+
  "        }"+
  "}"+
  "</script>");
 } else {
            // 통과
 }
위로