2011-09-05 6 views

Répondre

11

Vous ne pouvez pas faire cela en utilisant ASP.NET. ASP.NET côté serveur peut rediriger la requête entrante et ne peut pas connaître un cadre parent.

Mais si vous souhaitez rediriger cadre parent sur une condition côté serveur, vous pouvez appeler JavaScript du serveur comme ceci:

protected void Page_Load(object sender, EventArgs e) { 
    ClientScriptManager.RegisterClientScriptBlock(this.GetType(), 
     "RedirectScript", "window.parent.location = 'http://yoursite.com'", true); 
} 

Et bien sûr, vous pouvez utiliser window.parent.location JavaScript simple = « http: //votresite.com 'côté client.

+1

Notez que les domaines du cadre et des documents de cadre parents devront correspondre pour éviter une erreur d'accès refusé d'être jeté par la plupart des navigateurs . – Chris

+0

Si mon parent a un autre domaine dans le cadre? – Kiquenet

1
Response.Clear(); 
Header.Controls.Add(new LiteralControl(@" 
<script type=""text/javascript""> 
top.location = ""/Logout.aspx""; 
parent.location = ""/Logout.aspx""; 
</script> 
")); 
5

Je viens d'utiliser le code suivant avec succès. Elle a même court-circuité la X-Frame-Options SAMEORIGIN et permet la redirection d'un domaine à un autre dans un iframe:

string url = "https://siteurl.com"; 
Response.Write("<script>top.location='"+url+"';parent.location='"+url+"';</script>"); 
Questions connexes