2009-04-07 10 views
5

के अंदर दिखाया गया है क्या यह निर्धारित करना संभव है - सर्वर-साइड - क्या कोई पृष्ठ IFrame के भीतर लोड किया गया है?सर्वर-साइड डिटेक्शन कि एक पृष्ठ IFrame

जब मेरे आवेदन में कुछ त्रुटियां होती हैं तो उपयोगकर्ता को Default.aspx पर रीडायरेक्ट किया जाता है और एक त्रुटि संदेश दिखाया जाता है। उस त्रुटि संदेश का पाठ अपवाद हैंडलिंग कोड द्वारा सत्र में सेट हो जाता है। एक बार दिखाए जाने के बाद सत्र से त्रुटि संदेश साफ़ हो जाता है।

हालांकि, अपने आवेदन के हिस्से के एक IFrame उपयोग करने के लिए (यह एक 3 डी सुरक्षित कार्ड से भुगतान की जांच, जो आदेश कार्ड प्रदाता के प्रमाणीकरण यूआई प्रदर्शित करने के लिए एक IFrame जनादेश कर रहा है) है। अगर इस प्रक्रिया के दौरान कोई त्रुटि होती है तो मेरा रीडायरेक्ट IFrame के भीतर प्रभावी होता है। मैं इसका पता लगाने के लिए जावास्क्रिप्ट का उपयोग कर रहा हूं और Default.aspx सही ढंग से पुनः लोड करता हूं, लेकिन इसका मतलब है कि मुझे तेजी से उत्तराधिकार में दो Page_Loads मिलते हैं, और त्रुटि संदेश केवल पहले (और फिर साफ़ किया गया) पर दिखाया जाता है।

+1

मोज़िला डेवलपर नेटवर्क। मुझे सच में लगता है कि मैंने इसके साथ कीड़े की पूरी तरह से खोला है और संभवत: यहां तक ​​कि मेरा संदेश तब तक नहीं जोड़ा जाना चाहिए जब तक कि मैंने खुद को नहीं सीखा कि क्या हो रहा है, क्षमा करें। (http://stackoverflow.com/questions/15344187/how-does-it-appear-that-mdn-can-detect-a-request-from-an-iframe-on-the-server-si) – JayC

उत्तर

0

मुझे नहीं लगता कि आप किसी प्रकार का पेज होने की भावना में पता लगा सकते हैं। IInInrame() की कार्यक्षमता, लेकिन आप उन पृष्ठों के लिए अलग-अलग बेस क्लास रखने पर विचार कर सकते हैं जो IFrame में लोड किए गए हैं और जो लोग हैं ऐसा नहीं है कि आप यह जान सकें कि त्रुटि एक अनुरोध से है जो आईफ्रेम पेज के लिए है जो कुछ हद तक मदद कर सकती है।

0

सर्वर-साइड से कोई रास्ता नहीं है। जावास्क्रिप्ट के माध्यम से एकमात्र तरीका है। जब आप रीडायरेक्ट करते हैं, तो क्या आप एक क्वेरीस्ट्रिंग के माध्यम से त्रुटि संदेश या कोड पास कर सकते हैं?

0

क्या यह विंडो.लोकेशन के साथ जावास्क्रिप्ट का उपयोग करके रीडायरेक्ट करने के लिए काम नहीं करेगा? एक पूर्ण पृष्ठ को पुनर्निर्देशित करना?

0

बस, वर्तमान पृष्ठ का यूआरएल जांचें .. यदि यह IFrame पृष्ठ के साथ समान है तो डिफ़ॉल्ट.aspx या जो भी हो।

Dim urlpath1 As String = HttpContext.Current.Request.Url.AbsoluteUri 
If Right(urlpath1, 13) = "WebForm1.aspx" Then 
     Response.Redirect("~/") 
    Else 
     Response.Write("It's OK!") 
    End If 
+0

बस देखें ध्यान दें कि आपको Request.UrlReferrer का उपयोग करने की आवश्यकता है और Request.Url के रूप में Request.Url iframe url वापस कर देगा। –