develop/java script

세션스토리지를 이용한 뒤로가기

hybr1d 2016. 7. 1. 14:50

<%

Enumeration<String> paramNames = request.getParameterNames();

String referer = request.getHeader("referer");

String method = request.getMethod();


if(referer != null) {

String parameter = "";

while (paramNames.hasMoreElements()) {

String name = paramNames.nextElement();

if(!"".equals(parameter)) parameter += "&";

parameter += name + "=" + request.getParameter(name);

}

%>

<script type="text/javascript">

$(document).ready(function() {

//세션 스토로지에서 이전 페이지 데이터 꺼내오기

if(sessionStorage.length > 0) {

var method = sessionStorage.getItem("method");

var referer = "<%=referer %>";

var frm = document.createElement("form");

frm.setAttribute("id", "frmBack");

frm.setAttribute("method", method);

frm.setAttribute("action", referer.substring(0, referer.indexOf('?')));

document.body.appendChild(frm);

for(var i = 0; i < sessionStorage.length; i++) {

if(sessionStorage.key(i) != "" && sessionStorage.key(i) != "method") {

var input = document.createElement("input");

input.setAttribute("type", "hidden");

input.setAttribute("name", sessionStorage.key(i));

input.setAttribute("value", sessionStorage.getItem( sessionStorage.key(i) ));

frm.appendChild(input);

}

}

}


//세션 스토로지에 현재 페이지 데이터 저장

var parameter = "<%=parameter %>".split('&');

sessionStorage.clear();

sessionStorage.setItem("method", "<%=method %>");

for(var i = 0; i < parameter.length; i++) {

var name = parameter[i].split('=')[0];

var value = parameter[i].split('=')[1];

sessionStorage.setItem(name, value);

}


$("div.tit-page").children("a").attr("href", "javascript:;");

$("div.tit-page").children("a").attr("onclick", "goBack();");

});


function goBack() {

if( !!$("#frmBack") && "<%=method %>".toLowerCase() != "get" ) {

$("#frmBack").submit();

}

else {

history.back();

}

}

</script>

<%

}

else {

%>

<script type="text/javascript">

$("div.tit-page").children("a").attr("href", "javascript:history.back();");

</script>

<%

}

%>