Response.Redirect () в iFrame, перенаправить родительское окно - PullRequest
6 голосов
/ 05 сентября 2011

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

Ответы [ 4 ]

11 голосов
/ 06 сентября 2011

Вы не можете сделать это с помощью ASP.NET. ASP.NET на стороне сервера может перенаправить входящий запрос и не может знать о родительском фрейме.

Но если вы хотите перенаправить родительский фрейм при некоторых условиях на стороне сервера, вы можете вызвать JavaScript с сервера следующим образом:

protected void Page_Load(object sender, EventArgs e) {
   ClientScriptManager.RegisterClientScriptBlock(this.GetType(), 
       "RedirectScript", "window.parent.location = 'http://yoursite.com'", true);
}

И, конечно, вы можете использовать простой JavaScript window.parent.location = 'http://yoursite.com' на стороне клиента.

6 голосов
/ 03 июня 2016

Я только что успешно использовал следующий код.Он даже обошел X-Frame-Options SAMEORIGIN и разрешает перенаправление с одного домена на другой в фрейме:

string url = "https://siteurl.com";
Response.Write("<script>top.location='"+url+"';parent.location='"+url+"';</script>");

с интерполяцией строк (начиная с C # 6):

string url = "https://siteurl.com";
Response.Write($"<script>top.location='{url}';parent.location='{url}';</script>");
2 голосов
/ 06 октября 2014
Response.Clear();
Header.Controls.Add(new LiteralControl(@"
<script type=""text/javascript"">
top.location = ""/Logout.aspx"";
parent.location = ""/Logout.aspx"";
</script>
"));
0 голосов
/ 15 мая 2019
    url = "Your.asp?YourVar="&YourVar
    %> \end your classic asp code and pass to the script below
    <script type='text/javascript'>window.top.location.href = '<%= url %>'</scrip>
...