从IFrame重定向父页面

时间:2010-01-19 09:03:47

标签: c# asp.net iframe

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

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

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

9 个答案:

答案 0 :(得分:70)

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

以下是备选方案列表:

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>

答案 1 :(得分:13)

我使用了这段代码。

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

它有效。

答案 2 :(得分:5)

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

答案 3 :(得分:5)

使用Iframe&lt;&gt;

时,我们可以从服务器端和客户端重定向

客户方响应:

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

服务器端响应:

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

答案 4 :(得分:3)

嗯,这真的是一个黑客攻击,但你可以将Parent-Frame定义为默认目标:

<base target="_parent">

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

答案 5 :(得分:0)

据我所知,

必须是javascript。

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

如果您可以访问远程页面的头部块,则可以在没有javascript的情况下执行此操作:

<base target="_parent" />

非常简单,简单的1行解决方案,如果您可以访问远程页面头。没有javascript。

答案 8 :(得分:0)

Response.Write( "<script>window.open('" + url + "','_parent');</script>" );

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