iFrame 中的 Response.Redirect(),重定向父窗口

发布于 2024-12-03 03:34:16 字数 69 浏览 0 评论 0原文

我知道这是不可能的,但是想要从 iFrame 执行 Response.Redirect 来重定向父页面的最佳替代方案是什么?

I know this isn't possible, but what is the best alternative for wanting to do Response.Redirect from an iFrame, to redirect the parent page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

仲春光 2024-12-10 03:34:16

使用 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'。

You can not do this using ASP.NET. ASP.NET on server side can redirect incoming request and can't know about a parent frame.

But if you want to redirect parent frame on some server side condition you can call JavaScript from server like this:

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

And of course you can use simple JavaScript window.parent.location = 'http://yoursite.com' on client side.

走过海棠暮 2024-12-10 03:34:16

我刚刚使用以下代码成功了。它甚至绕过了 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>");

I just used the following code with success. It even bypassed the X-Frame-Options SAMEORIGIN and allows redirection from one domain to another one in an iframe:

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

With string interpolation (since C# 6):

string url = "https://siteurl.com";
Response.Write($"<script>top.location='{url}';parent.location='{url}';</script>");
天气好吗我好吗 2024-12-10 03:34:16
Response.Clear();
Header.Controls.Add(new LiteralControl(@"
<script type=""text/javascript"">
top.location = ""/Logout.aspx"";
parent.location = ""/Logout.aspx"";
</script>
"));
Response.Clear();
Header.Controls.Add(new LiteralControl(@"
<script type=""text/javascript"">
top.location = ""/Logout.aspx"";
parent.location = ""/Logout.aspx"";
</script>
"));
橙幽之幻 2024-12-10 03:34:16
    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>
    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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文