从IFrameredirect父页面

我正在使用IFrame,并从这个IFrame我想redirect到另一个页面。

请告诉我如何做到这一点,没有任何JavaScript,即没有window.location

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

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

这是一个替代scheme列表:

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> 

我用这个代码。

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

它工作。

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

当使用Iframe <>时,我们可以从服务器端和客户端redirect

客户端回应:

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

服务器端响应:

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

那么,这真是一个黑客,但你可以定义父框架作为默认目标:

 <base target="_parent"> 

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

必须是JavaScript,据我所知。

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

像所有其他人指出的,你不能没有使用JavaScript。 但是,在服务器端,您可以发出必要的JavaScript,以便页面在iframe中加载后立即redirect到目标位置。

你可以做到这一点没有JavaScript,如果你有权访问远程页面的头部块:

 <base target="_parent" /> 

非常简单,容易,单线解决scheme,如果你有访问远程页面头。 没有JavaScript。

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

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