iFrame перенаправляет на страницу с ошибкой - PullRequest
0 голосов
/ 13 февраля 2011

У меня есть форма, которая отправляет iFrame для обработки.Затем iFrame отправляет форму для пересылки в родительском окне для подтверждения.

Я добавил переменную сеанса в подтверждение, чтобы указать, что процесс завершен.

Если пользователь нажимает кнопку "Назад"Кнопка формы в iFrame перенаправляет на страницу с ошибкой, но, очевидно, она отображается в самом iFrame.

Как сделать так, чтобы страница с ошибкой вызывала родительский элемент?

If Session("Complete") = 1 Then
     Response.Redirect("default.asp?Re-Entry")
End If

Ответы [ 2 ]

0 голосов
/ 13 февраля 2011

Я ДУМАЮ, что код, который вы используете, неправильный, по моему мнению, если вы используете приведенный ниже код, который может помочь вам

Response.Write("<scr" + "ipt language='Javascript'>" + _
               "document.parent.navigate('default.asp?Re-Entry');" + _
               "</scr" + "ipt>")
0 голосов
/ 13 февраля 2011

Вместо 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>

Надеюсь, это поможет.

...