【问题标题】:Redirect the parent page from IFrame从 IFrame 重定向父页面
【发布时间】:2011-01-06 17:30:10
【问题描述】:

我正在使用 IFrame,我想从这个 IFrame 重定向到另一个页面。

请告诉我如何在没有任何 JavaScript 的情况下执行此操作,即没有 window.location

Response.Redirect 在 IFrame 中显示页面,但我想将页面显示为主页。

【问题讨论】:

  • 没有JS是不行的。

标签: c# asp.net iframe


【解决方案1】:

如果我们可以在不使用客户端脚本或用户调用的操作的情况下操纵其他框架/窗口,那将是一种危险。

以下是替代品列表:

Javascript 选项:

window.top.location.href=theLocation;
window.parent.location.href=theLocation;
window.top.location.replace(theLocation);

非 JavaScript 选项:

<a href="theLocation" target="_top">Click here to continue</a>  
<a href="theLocation" target="_parent">Click here to continue</a>

【讨论】:

  • 我也google了很多。但是没有找到任何没有javascript的方法。我使用以下来重定向(没有任何点击,因为我没有任何标签或按钮)。 ClientScript.RegisterStartupScript(GetType(), "Load", "");
  • @Waheed:好吧,猜想我们无法逃脱 javascript ghost :p 顺便说一句,如果用户禁用了 javascript,您可能仍想添加一个链接。
  • 您在寻找超链接吗?
【解决方案2】:

我使用了这个代码。

ClientScript.RegisterStartupScript(GetType(), "Load", "<script type='text/javascript'>window.parent.location.href = '../CentinelError.aspx'; </script>");

而且它有效。

【讨论】:

  • 这是我刚刚用于类似问题的解决方案。它不会避免使用 javascript,但它确实允许您执行操作以响应服务器操作,这正是我所需要的。
【解决方案3】:

使用 iframe 时,我们可以从服务器端和客户端进行重定向

客户端响应:

window.parent.location.href="http://yoursite.com"

服务器端响应:

Response.Write("<script type=text/javascript> window.parent.location.href ='http://yoursite.com' </script>")

【讨论】:

    【解决方案4】:

    我认为没有 JS 就没有办法做到这一点。浏览器将处理 iframe 中来自服务器的每个重定向。您必须“告诉”它使用 JavaScript 重新加载整个窗口。

    【讨论】:

      【解决方案5】:

      嗯,这确实是一个 hack,但您可以将 Parent-Frame 定义为默认目标:

      <base target="_parent">
      

      由于这将适用于 iframe 中的所有链接,因此这可能不是一个令人满意的解决方案 ;-)

      【讨论】:

        【解决方案6】:

        据我所知必须是 javascript。

        self.parent.location='http://'
        

        【讨论】:

          【解决方案7】:

          就像所有其他人指出的那样,如果不使用 JavaScript,您就无法做到这一点。但是,在服务器端,您可以发出必要的 JavaScript,以便页面在 iframe 中加载后立即重定向到目标位置。

          【讨论】:

            【解决方案8】:

            如果您可以访问远程页面的头块,则无需 javascript 即可执行此操作:

            <base target="_parent" />
            

            如果您可以访问远程页眉,则非常简单、容易、1 行的解决方案。没有javascript。

            【讨论】:

              【解决方案9】:
              Response.Write( "<script>window.open('" + url + "','_parent');</script>" );
              

              在下面的链接中回答 http://forums.asp.net/t/1349064.aspx?Redirect+parent+page+from+within+Iframe

              【讨论】: