Ответ.Redirect() в iFrame, перенаправить родительское окно
Я знаю, что это невозможно, но какая лучшая альтернатива для желания сделать Response.Redirect
из iFrame, чтобы перенаправить родительскую страницу?
3 ответов
вы не можете сделать это, используя 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.родитель.местоположение = 'http://yoursite.com-на стороне клиента.
Я просто использовал следующий код с успехом. Он даже обошел X-Frame-Options SAMEORIGIN
и позволяет перенаправлять из одного домена в другой в iframe:
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>");
Response.Clear();
Header.Controls.Add(new LiteralControl(@"
<script type=""text/javascript"">
top.location = ""/Logout.aspx"";
parent.location = ""/Logout.aspx"";
</script>
"));