Scenario: 메인에 Index.jsp 에서 2개의 프레임이 있다. 왼쪽은 로그인을 할 수 있는 iframe 이고 오른쪽은 로그인 결과를 나타내주는 iframe이다.
왼쪽창에서 로그인 검증값으로 넘어간뒤 로그인이 완료되면 right의 iframe 을 동적으로 반응 시켜주어야 했다.
즉 왼쪽 iframe 스크립트 코드에서 오른쪽으로 접근하는 부분에서 애를 많이 먹었는데 성공 할 수있었다.
Solutions:
(구문해석)
$('#right', window.parent.document).contents().find('.login').show(); //가장 애먹은 부분이었다.
위와 왼쪽 프레임에서 오른쪽 프레임으로 접근하였다.
$('#right', window.parent.document) 이것은 부모프레임에서 #right라는 id를 가진 프레임에 접근하는 것이다.
contents().find('.login').show(); 그뒤에 그 프레임내 컨텐츠에서 login class를 가진 요소에 접근해 show() 시켜준다.
<index.jsp>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <h1 id=hi>여기표시 접근가능?</h1>
- <table width="100%" border="1">
- <tr><td id='frame'>
- <iframe src="left.jsp" width="450" height="560"></iframe>
- <iframe id="right" src="right.jsp" width="450" height="560"></iframe>
- </td>
- </tr>
- </table>
- <script type="text/javascript">
- </script>
- </body>
- </html>
<left.jsp>
- <%@page import="java.util.Date"%>
- <%@page import="java.text.SimpleDateFormat"%>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <%
- Date time = new Date();
- SimpleDateFormat formatter = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
- %>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
- </head>
- <body>
- <h1>left.jsp</h1><br>
- <form action="LoginResult.jsp">
- <% if(session.getAttribute("id") == null){%>
- 아이디: <input type="text" name="id"><br>
- 비밀번호: <input type="text" name="pw"><br>
- <input type="submit" value="로그인">
- <script type="text/javascript">
- $(function(){
- $('#right', window.parent.document).contents().find('.login').hide();
- $('#right', window.parent.document).contents().find('.logout').show();
- })
- </script>
- <%} else { %>
- <h3>jsp 님 로그인중</h3><br>
- <input type="submit" value="LogOut">
- <hr style="border:solid 2px red;">
- 접속시간:<% time.setTime(session.getCreationTime()); %><%=formatter.format(time) %><br>
- 최근 접근 시간시간:<% time.setTime(session.getLastAccessedTime()); %>
- <%=formatter.format(time) %>
- <script type="text/javascript">
- $(function(){
- $('#right', window.parent.document).contents().find('.login').show(); //제일 애먹었던부분
- $('#right', window.parent.document).contents().find('.logout').hide();
- })
- </script>
- <%}%>
- </form>
- </body>
- </html>
<right.jsp>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <h1>RIGHT.jsp</h1><br>
- <h2 class='logout'>로그인되어 있지 않은 상태입니다.</h2>
- <img class='login' alt="main" src="main.jpg" width="70%" height="70%" style="display:none">
- <h2 class='login' style="display:none">접속중입니다.</h2>
- </body>
- </html>
<LoginResult.jsp> ->로그인 검증
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <%
- if("jsp".equals(request.getParameter("id")) && "1234".equals(request.getParameter("pw")))
- {
- session.getId();
- session.setAttribute("id", "jsp");
- session.setAttribute("pw", "1234");
- %>
- <script type="text/javascript">
- alert("로그인에 성공하였습니다.")
- location.href="left.jsp";
- </script>
- <% } else {
- if(session.getAttribute("id") != null)
- {
- session.invalidate();
- %>
- <script type="text/javascript">
- alert("로그아웃 되었습니다.");
- location.href="left.jsp";
- </script>
- <% } %>
- <script type="text/javascript">
- alert("비밀번호가 틀렸습니다.");
- location.href="left.jsp";
- </script>
- <%} %>
- </body>
- </html>
<접속 안되있을시>
<로그인 성공시>
'To be Developer > WEB' 카테고리의 다른 글
[Jquery, Ajax] 로그인 기능을 Ajax로 만들어서 좋았던점 (0) | 2017.03.24 |
---|---|
[AJAX, JSON] Servlet 에서 Ajax를 써서 동적으로 리플 불러오기 (0) | 2017.03.24 |
[Json,Ajax] 제이선 파일에서 ajax 및 getJson 메소드를 써서 데이터 로드하기 (0) | 2017.02.16 |
[Ajax] 특정 Html 파일 삽입하기 및 Html파일내 특정 태그요소만 불러오기 (0) | 2017.02.16 |
[jQuery] 체크박스 선택한뒤 선택된 요소 결과로 띄우기 (0) | 2017.02.14 |