从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