2011-09-05 10 views
6

को पुनर्निर्देशित करें, मुझे पता है कि यह संभव नहीं है, लेकिन माता-पिता पृष्ठ को रीडायरेक्ट करने के लिए iFrame से Response.Redirect करने के लिए सबसे अच्छा विकल्प क्या है?iFrame में Response.Redirect(), पेरेंट विंडो

उत्तर

11

आप एएसपी.नेट का उपयोग करके ऐसा नहीं कर सकते हैं। सर्वर पक्ष पर ASP.NET आने वाले अनुरोध को पुनर्निर्देशित कर सकता है और माता-पिता फ्रेम के बारे में नहीं जान सकता है।

लेकिन आप कुछ सर्वर साइड शर्त पर माता पिता के फ्रेम आप इस तरह सर्वर से जावास्क्रिप्ट कॉल कर सकते हैं रीडायरेक्ट करना चाहते हैं:

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

और निश्चित रूप से आप सरल जावास्क्रिप्ट window.parent.location उपयोग कर सकते हैं = 'http: //yoursite.com 'क्लाइंट साइड पर।

+1

ध्यान दें कि फ्रेम और माता पिता के फ्रेम दस्तावेजों के डोमेन से इंकार त्रुटि अधिकतर ब्राउज़रों द्वारा फेंके जाने एक्सेस से बचने के लिए मैच के लिए की आवश्यकता होगी । – Chris

+0

अगर मेरे माता-पिता के फ्रेम में कोई अन्य डोमेन है? – Kiquenet

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

मैंने सफलता के साथ निम्नलिखित कोड का उपयोग किया। यह भी X-Frame-Options SAMEORIGIN नजरअंदाज और एक डोमेन से एक iframe में एक-दूसरे से पुनर्निर्देशन अनुमति देता है:

string url = "https://siteurl.com"; 
Response.Write("<script>top.location='"+url+"';parent.location='"+url+"';</script>"); 
संबंधित मुद्दे