我正在使用IFrame,从这个IFrame我想重定向到另一个页面。
请告诉我如何在没有任何JavaScript的情况下执行此操作,即没有window.location
。
Response.Redirect
显示IFrame中的页面,但我想将页面显示为主页。
答案 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