现有一个iframe页面quickEnter.jsp,其action为/flgn/quickEnter.do
如果在action中验证成功,则希望跳出iframe,显示一个全新的页面;
如果验证失败,则在原iframe页面中显示出错信息。
应该怎么做才可以达到这样的效果呢???使用的是struts。如果在页面的action中添加target=“_parent”,则出错的时候父窗口的内容就不显示了!
可是不加的话,成功跳转又会再出现父窗口的内容!!
到底应该怎么做啊,困惑中
如果在action中验证成功,则希望跳出iframe,显示一个全新的页面;
如果验证失败,则在原iframe页面中显示出错信息。
应该怎么做才可以达到这样的效果呢???使用的是struts。如果在页面的action中添加target=“_parent”,则出错的时候父窗口的内容就不显示了!
可是不加的话,成功跳转又会再出现父窗口的内容!!
到底应该怎么做啊,困惑中
function showNewPage() {
parent.showIframeNewPage();
}//在主页面内
function showIframeNewPage() {
location.href = "newPage.jsp"; //这里改成你验证成功的页面地址
}
function showNewPage() {
window.parent.location.href = "newPage.jsp"; //这里改成你验证成功的页面地址
}
servlet中处理响应,然后输出不同的内容。
out.println("<script type=\"text/javascript\">");
out.println("window.parent.OnCompleted(" + retVal + ",'" + errorMessage+ "');");
out.println("</script>");
//完全可以在不同的情况下,使用js处理不同的情况。
在jsp页面中可以用下面这个处理servlet中的返回。
function OnCompleted(errnum,errmessage){
switch(errnum){
case 0:
break;
case 101:
alert('Fill blank');
return;
case 201:
alert('Login failed');
return;
}
window.location='<%=request.getContextPath()%>/admin/admin.jsp';
}
function check(){
//省略
//...
}
form中的内容
<form id="form1" target="CheckLogin" name="form1" method="post" action="" onsubmit="return check();">
//省略
//...
</form>
关键还需要一个iframe来协助。
<script type="text/javascript">
document.write( '<iframe name="CheckLogin" style="display: none" src="<%=request.getContextPath()%>/ui/wait.htm"></iframe>' ) ;
</script>
LZ可以慢慢研究一下。
上面给的例子中的内容取自验证登陆过程。
大致过程是
form-->iframe-->servlet-->JS:oncompleted()
6楼的方法好像麻烦了点,而且我项目用到的是struts,再另外写servlet好像有点怪,呵呵。不过还是多谢你提供的思路!
之前陷入死胡同是因为我总是想着一步到位了~~没想到可以先转到同一个页面再判断该怎么跳转~