मूल विंडो में खोले जाने के लिए iframe से लिंक को कैसे बाध्य करें


359

मुझे लिंक को उसी मूल पृष्ठ में खोलने की आवश्यकता है, बजाय इसे नए पृष्ठ में खोलने के।

ध्यान दें: iframeऔर मूल पृष्ठ एक ही डोमेन हैं


जवाबों:


617

मैंने पाया कि सबसे अच्छा समाधान आधार टैग का उपयोग करना था । Iframe में पेज के प्रमुख में निम्नलिखित जोड़ें:

<base target="_parent">

यह पैरेंट विंडो में पेज के सभी लिंक को लोड करेगा। यदि आप अपने लिंक को एक नई विंडो में लोड करना चाहते हैं, तो उपयोग करें:

<base target="_blank">

यह टैग सभी ब्राउज़रों में पूरी तरह से समर्थित है।


4
यह किराया पार ब्राउज़र कैसे करता है?
चार्ली श्लेसेर

3
@Wilf मैं बिल्कुल सही नहीं था;) <base target>किसी भी से पहले आना चाहिए <a href>, क्योंकि यह निम्नलिखित लिंक के लिए डिफ़ॉल्ट ब्राउज़िंग संदर्भ सेट करता है; <base href>किसी भी URL संदर्भ ( <* href> <* src> <form action> <object data>…) से पहले आना चाहिए क्योंकि यह आधार URL को सेट करता है जिसके खिलाफ सापेक्ष URL हल किए जाते हैं।
सैम

5
आपने इस प्रश्न का उत्तर एक साल बाद क्यों दिया, इसका उत्तर मैंने उसी उत्तर के साथ दिया था? लेकिन आपको उठाया गया था। यह बहुत अजीब है।
vsync

5
मुझे लगता है कि यह इसलिए है क्योंकि आपका उत्तर एक नई विंडो में लिंक को खोलता है, जबकि मेरा इसे iframe की मूल विंडो में खोलता है, जो कि मूल प्रश्न था। आपकी गरज चोरी करने के लिए क्षमा करें!
क्रिस वासेली

1
ध्यान दें कि <baseटैग के विनिर्देशन के अनुसार कोई समापन नहीं है w3.org/TR/html5/document-metadata#the-base-element इसलिए यह होना चाहिए<base target="_parent" >
मार्क

147

लक्ष्य-विशेषता का उपयोग करें:

<a target="_parent" href="http://url.org">link</a>

1
मैं यह कोशिश करता हूं, नई विंडो में खुला है
हैम एवगी

3
मेरे से +1, आधार लक्ष्य = "_ माता-पिता" काम करता है लेकिन लक्ष्य = "_ माता-पिता" मेरे लिए कभी असफल नहीं हुआ!

7
<base target="_blank">ठीक है, लेकिन यहाँ सवाल एक लिंक के बारे में है, इफ्रे पर सभी लिंक के व्यवहार को बदलने के बारे में नहीं है। मेरे लिए यह सही उत्तर है।
क्रिश्चोडजी

34

जावास्क्रिप्ट के साथ:

window.parent.location.href= "http://www.google.com";

28

आप किसी भी विकल्प का उपयोग कर सकते हैं

केवल मूल पृष्ठ के मामले में:

यदि आप मूल पृष्ठ या मूल iframe में सभी लिंक खोलना चाहते हैं , तो आप iframe के मुख्य भाग में निम्नलिखित कोड का उपयोग करते हैं:

<base target="_parent" />

या

यदि आप पैरेंट पेज या पैरेंट iframe में एक विशिष्ट लिंक खोलना चाहते हैं , तो आप निम्नलिखित तरीके का उपयोग करें:

<a target="_parent" href="http://specific.org">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

या

नेस्टेड iframe के मामले में:

यदि आप सभी लिंक ब्राउज़र विंडो में खोलना चाहते हैं (ब्राउज़र url में पुनर्निर्देशित), तो आप iframe के हेड सेक्शन में निम्नलिखित कोड का उपयोग करते हैं:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
    $(window).load(function(){
        $("a").click(function(){
            top.window.location.href=$(this).attr("href");
            return true;
        })
    })
</script>

या

यदि आप ब्राउज़र विंडो में एक विशिष्ट लिंक खोलना चाहते हैं (ब्राउज़र url में पुनर्निर्देशित), तो आप निम्न तरीके का उपयोग करते हैं:

<a  href="http://specific.org"   target="_top" >specific Link</a>

या

<a  href="javascript:top.window.location.href='your_link'">specific Link</a>
<a  href="javascript:top.window.location.href='http://specific.org'">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

1
अच्छा जवाब, मुझे केवल एक विशिष्ट लिंक के लिए इसका उपयोग करने की आवश्यकता है, फिर भी स्वीकृत उत्तर केवल यह बताता है कि पृष्ठ पर सभी लिंक के लिए लक्ष्य कैसे बदलें। धन्यवाद
dading84

15

एक HTML तत्व है, baseजो आपको इसकी अनुमति देता है:

एक पृष्ठ पर सभी लिंक के लिए एक डिफ़ॉल्ट URL और एक डिफ़ॉल्ट लक्ष्य निर्दिष्ट करें:

<base target="_blank" />

यह निर्दिष्ट करके _blankकि आप iframe के अंदर के सभी लिंक बाहर खोले जाएंगे।


क्या यह नेस्टेड आइफ्रेम्स में विरासत में मिला है?
beppe9000

7

जैसा कि कहा गया है, आप एक लक्ष्य विशेषता का उपयोग कर सकते हैं, लेकिन इसे XHTML में तकनीकी रूप से हटा दिया गया था। यह आपको जावास्क्रिप्ट का उपयोग करने के साथ छोड़ देता है, आमतौर पर कुछ ऐसा होता है parent.window.location



@ PaulD.Waite लिंक को आपने अभी 404 पोस्ट किया है।
डैन लोवेनहेर्ज़

1
@ दान: अहा, हां धन्यवाद। ताज़ा लिंक: dev.w3.org/html5/spec/…
पॉल डी। वेट

7

अंदर target="_parent" विशेषता का प्रयास करें anchor tag


मैं यह कोशिश करता हूं, नई विंडो में खुला है
हैम एवगी

4
टारगेट ट्राई करें = "_ top"। Iframe में निहित iframes हो सकता है? या वास्तविक लिंक जावास्क्रिप्ट घटना पर खोला है?
जीई

5

यदि आप अपने वेबपेज में iframe का उपयोग कर रहे हैं, तो आपको iframe से HTML हाइपरलिंक (लंगर टैग) के माध्यम से पूरे पृष्ठ को बदलते समय एक समस्या आ सकती है। इस समस्या को कम करने के लिए दो समाधान हैं।

समाधान 1. आप निम्न उदाहरण में दिए गए एंकर टैग के लक्ष्य विशेषता का उपयोग कर सकते हैं।

<a target="_parent" href="http://www.kriblog.com">link</a>

समाधान 2. आप जावास्क्रिप्ट के साथ iframe से पैरेंट विंडो में एक नया पेज भी खोल सकते हैं।

<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">

याद रखें ⇒ target="_parent" XHTML में हटा दिया गया है, लेकिन यह अभी भी HTML 5.x में समर्थित है।

निम्नलिखित लिंक http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html से पढ़ा जा सकता है


4

सबसे बहुमुखी और सबसे क्रॉस-ब्राउज़र समाधान "आधार" टैग के उपयोग से बचने के लिए है, और इसके बजाय "टैग" के लक्ष्य विशेषता का उपयोग करें:

<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>

<base>टैग कम बहुमुखी है और ब्राउज़र के दस्तावेज़ के भीतर अपने स्थान के लिए उनकी जरूरतों के मामले में असंगत हैं, और अधिक पार ब्राउज़र का परीक्षण की जरूरत पड़ेगी। आपकी परियोजना और स्थिति के आधार पर, के आदर्श क्रॉस-ब्राउज़र प्लेसमेंट को प्राप्त करना मुश्किल या पूरी तरह से अक्षम हो सकता है<base> टैग ।

टैग की target="_parent"विशेषता के साथ ऐसा करना <a>न केवल अधिक ब्राउज़र-अनुकूल है, बल्कि आपको उन लिंक के बीच अंतर करने की अनुमति देता है जिन्हें आप आइफ्रेम में खोलना चाहते हैं, और जिन्हें आप पेरेंट में खोलना चाहते हैं।


3

<a target="parent">नए टैब / विंडो <a target="_parent">में लिंक खोलेगा ... नए टैब / विंडो खोले बिना पैरेंट / करंट विंडो में लिंक खोलेगा। Don't_forget_that_underscore!


2

याह मिल गया

<base target="_parent" />

Iframe में खुले सभी iframe लिंक को खोलने के लिए यह उपयोगी है।

तथा

$(window).load(function(){
    $("a").click(function(){
        top.window.location.href=$(this).attr("href");
        return true;
    })
})

यह हम पूरे पृष्ठ या पृष्ठ के विशिष्ट भाग के लिए उपयोग कर सकते हैं।

आपकी सहायताके लिए शुक्रिया।



0
   <script type="text/javascript"> // if site open in iframe then redirect to main site
        $(function(){
             if(window.top.location != window.self.location)
             {
                top.window.location.href = window.self.location;
             }
        });
    </script>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.