2012-02-12 10 views
5

पर नेविगेट करें यह एक सामान्य प्रश्न के विपरीत प्रतीत होता है, जिसका अर्थ है कि शायद मुझे कुछ स्पष्ट याद आ रही है।जब कोई आईफ्रेम में किसी लिंक पर क्लिक करता है, तो पूरी विंडो

मेरे पास एक छोटा सा ऐप है जो शीर्ष पर मेरे शीर्षलेख के साथ, किसी अन्य पृष्ठ (किसी भिन्न डोमेन से) को एक आईफ़्रेम के अंदर प्रदर्शित करता है। अब तक सब ठीक है. लेकिन जब कोई उस आंतरिक पृष्ठ पर एक लिंक पर क्लिक करता है, तो यह सिर्फ आईफ्रेम को नेविगेट करता है - मैं चाहता हूं कि यह पूरे पृष्ठ को इसके बजाय (विशेष रूप से, यूआरएल बार में यूआरएल अपडेट करना) को नेविगेट करना चाहता है।

यह मूल रूप से क्लिकजैकिंग के विपरीत है। मैं सिर्फ नेविगेशन को काम करना चाहता हूं जैसे कि यह एक आईफ्रेम नहीं था। क्या कोई आसान तरीका है?

उत्तर

4

यदि की सामग्री एक अलग डोमेन में है तो आप सुरक्षा कारणों से ऐसा नहीं कर सकते हैं।
आप अन्य डोमेन और html कोड के लिए पहुँच है, तो आप इस लिंक पर कुछ इस तरह कर सकता है: अगर आप दोनों साइट के अंदर और बाहर नियंत्रण नहीं

href="javascript:parent.window.location.href='http:/google.com' 
+0

यह विधि iframe को लिंक href के साथ एक टेक्स्ट संदेश प्रदर्शित करने का कारण बन सकती है। बेहतर उत्तर लक्ष्य = '_ पैरेंट' – orberkov

1

यह वही-डोमेन मूल नीति का उल्लंघन iframe

कल्पना कीजिए कि आप iframe के अंदर उपयोगकर्ता का बैंक डालते हैं। यदि आप फ़्रेम के अंदर (बाहरी से) चीज़ों के लिए इवेंट हैंडलर पंजीकृत कर सकते हैं, तो आप उपयोगकर्ता के बैंक खाता संख्या को रिकॉर्ड कर सकते हैं, वे विज्ञापन उद्देश्यों के लिए क्लिक की जाने वाली चीज़ों को देख सकते हैं, जब वे कुछ कार्यवाही करने के लिए जाते हैं तो उन्हें गलत दिशा निर्देशित करते हैं .. और फ्रेम उनके बैंक के लिए एक सुरक्षित कनेक्शन के रूप में दिखाई देगा!

यदि यह फ्रेम के अंदर अपनी साइट है, यह संभव है, सर्वर के माध्यम से राज्य सौंपने, या नए (ish) के साथ HTML5 Web Messaging मानक, या फ्रेम के अंदर से parent.window जोड़ तोड़ द्वारा के माध्यम से।

+0

मैं समझता हूं कि सुरक्षा कारणों से मैं बहुत सी चीजें नहीं कर सकता, लेकिन आंतरिक साइट स्पष्ट रूप से अनुरोध करता है कि यह केवल "फ्रेम बस्टिंग" की अनुमति देने के लिए वास्तव में रहस्यमय प्रतीत होता है। – apenwarr

+0

@apenwarr उपयोगकर्ता को किसी दुर्भावनापूर्ण साइट पर जाने में आसान बनाना आसान है। आप नहीं चाहते कि दुर्भावनापूर्ण साइट एक निर्दोष तृतीय-पक्ष वेब पेज "ड्राइव" करने में सक्षम हो - यह एक्सएसएस का एक रूप है। – Borealid

+0

मैं कुछ भी ड्राइव करने की कोशिश नहीं कर रहा हूं - मैं सचमुच सिर्फ * मेरा * पृष्ठ जाना चाहता हूं। अगर मैं एक आईफ्रेम में संभावित रूप से दुर्भावनापूर्ण पृष्ठ लोड कर सकता हूं, तो उस पृष्ठ के लिए घोंसला वाले के बजाय रूट पेज होना खतरनाक नहीं है। – apenwarr

3

आईफ़्रेम में सामग्री लिंक के लक्ष्य को संशोधित कर सकती है: _parent या _top का उपयोग करें।

<a href='#aboutus' target='_parent'>About Us</a> 
संबंधित मुद्दे

 संबंधित मुद्दे