我有一个表单,可以将其发送到iFrame
进行处理。然后,iFrame在父窗口中发布一个表单,并将其转发到确认窗口。
我在确认消息中添加了一个会话变量,以指示该过程已完成。
如果用户单击back按钮,iFrame中的表单将重定向到一个错误页面,但显然这会显示在iFrame本身中。
如何在父级中触发错误页面?
If Session("Complete") = 1 Then
Response.Redirect("default.asp?Re-Entry")
End If
发布于 2011-02-13 13:54:33
您应该使用以下内容,而不是Response.Redirect:
Response.Write( "<script language='Javascript'>" + _
"window.parent.document.location.href = " + _
"'default.asp?Re-Entry';" + _
"</script>")
它将向iFrame发送回JavaScript的一部分,该部分将指示其父页面(主页)导航到错误页面。
下面是我测试的完整代码:
<%@ Language="VBScript" %>
<%
If Request("op") = "process" Then
If Session("Processed") = 1 Then
Response.Write( "<script>" + _
"window.parent.document.location.href = " + _
"'error.asp?msg=AlreadyProcessed';" + _
"</script>")
Else
Session("Processed") = 1
Response.Write( "<script>" +
"alert('Hello, " + Request("name") + "!');" + _
"</script>")
End If
Response.End
End If
%>
<html>
<body>
<iframe name="parallel" id="parallel" width="100%" height="50" />
<form method="POST" target="parallel" action="iFrame.asp">
<input type="hidden" name="op" value="process" />
<b>Your Name</b><br/>
<input type="text" name="name" width="250" /><br/>
<button type="submit">Submit!</button>
</form>
</body>
</html>
我希望它能帮上忙。
发布于 2011-02-13 13:58:30
我认为你使用的代码是错误的,如果你使用下面的代码可能会对你有所帮助
Response.Write("<scr" + "ipt language='Javascript'>" + _
"document.parent.navigate('default.asp?Re-Entry');" + _
"</scr" + "ipt>")
https://stackoverflow.com/questions/4984443
复制相似问题