413

I need to open the link in the same parent page, instead of open it in a new page.

note : The iframe and parent page are the same domain.

luchaninov
  • 6,792
  • 6
  • 60
  • 75
Haim Evgi
  • 123,187
  • 45
  • 217
  • 223
  • Possible duplicate of [Load iframe links into parent window?](https://stackoverflow.com/questions/15712880/load-iframe-links-into-parent-window) – clickbait Jul 26 '18 at 03:12

14 Answers14

711

I found the best solution was to use the base tag. Add the following to the head of the page in the iframe:

<base target="_parent">

This will load all links on the page in the parent window. If you want your links to load in a new window, use:

<base target="_blank">

Browser Support

Marcus
  • 4,400
  • 13
  • 48
  • 64
Chris Vasselli
  • 13,064
  • 4
  • 46
  • 49
178

Use target-attribute:

<a target="_parent" href="http://url.org">link</a>
nnevala
  • 5,779
  • 2
  • 20
  • 13
  • 13
    `` is ok, but the question here is about one link, not about changing behavior of all links on iframe. For me this is the correct answer. – kriskodzi Feb 04 '15 at 10:57
  • What about opening the link a new tab of the parent? The example above opens the link in the same tab of the parent window. – Deyan Peychev Nov 04 '21 at 11:24
  • opening in same tab as required. not in new tab. works fine – S K R Dec 15 '21 at 13:12
43

With JavaScript:

window.parent.location.href= "http://www.google.com";
Nikola K.
  • 7,093
  • 13
  • 31
  • 39
yenssen
  • 1,171
  • 2
  • 23
  • 37
  • 1
    this solution worked properly for me. I had a button tag from which on click I wanted the same page to reload with a new URL. The button was present in an iFrame so needed the page to reload with the new URL and not the iFrame. Using window.parent worked wonders. Thanks for this!! – Anish Aralikatti Jul 07 '21 at 07:56
39

You can use any options

in case of only parent page:

if you want to open all link into parent page or parent iframe, then you use following code in head section of iframe:

<base target="_parent" />

OR

if you want to open a specific link into parent page or parent iframe, then you use following way:

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

OR

in case of nested iframe:

If want to open all link into browser window (redirect in browser url), then you use following code in head section of 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>

OR

if you want to open a specific link into browser window (redirect in browser url), then you use following way:

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

or

<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>
Ahosan Karim Asik
  • 3,219
  • 1
  • 18
  • 27
  • 1
    Good answer, I needed to just use this for a specific link, yet the accepted answer only describes how to change the target for all links on the page. Thanks – dading84 Jun 06 '17 at 10:52
19

There's a HTML element called base which allows you to:

Specify a default URL and a default target for all links on a page:

<base target="_blank" />

By specifying _blank you make sure all links inside the iframe will be opened outside.

vsync
  • 118,978
  • 58
  • 307
  • 400
7

Try target="_parent" attribute inside the anchor tag.

kongaraju
  • 9,344
  • 11
  • 55
  • 78
Gee
  • 175
  • 2
7

As noted, you could use a target attribute, but it was technically deprecated in XHTML. That leaves you with using javascript, usually something like parent.window.location.

Ryan McGrath
  • 2,042
  • 14
  • 23
7

If you are using iframe in your webpage you might encounter a problem while changing the whole page through a HTML hyperlink (anchor tag) from the iframe. There are two solutions to mitigate this problem.

Solution 1. You can use target attribute of anchor tag as given in the following example.

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

Solution 2. You can also open a new page in parent window from iframe with JavaScript.

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

Remember ⇒ target="_parent" has been deprecated in XHTML, but it is still supported in HTML 5.x.

More can be read from following link http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html

Roland Krüger
  • 904
  • 5
  • 15
user1788142
  • 101
  • 1
  • 1
6

The most versatile and most cross-browser solution is to avoid use of the "base" tag, and instead use the target attribute of the "a" tags:

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

The <base> tag is less versatile and browsers are inconsistent in their requirements for its placement within the document, requiring more cross-browser testing. Depending on your project and situation, it can be difficult or even totally unfeasible to achieve the ideal cross-browser placement of the <base> tag.

Doing this with the target="_parent" attribute of the <a> tag is not only more browser-friendly, but also allows you to distinguish between those links you want to open in the iframe, and those you want to open in the parent.

Adelmar
  • 2,073
  • 2
  • 20
  • 20
4

<a target="parent"> will open links in a new tab/window ... <a target="_parent"> will open links in the parent/current window, without opening new tabs/windows. Don't_forget_that_underscore!

krisjd
  • 49
  • 1
2

Yah I found

<base target="_parent" />

This useful for open all iframe links open in iframe.

And

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

This we can use for whole page or specific part of page.

Thanks all for your help.

Ratan Paul
  • 484
  • 9
  • 25
1
   <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>
Sandeep Sherpur
  • 2,418
  • 25
  • 27
1

Try target="_top"

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>
Aamir Shahzad
  • 6,683
  • 8
  • 47
  • 70
-2

I have found simple solution

<iframe class="embedded-content" sandbox="allow-top-navigation"></iframe>

allow-top-navigation Allows the iframe to change parent.location. For more info https://javascript.info/cross-window-communication

SK Shewa
  • 106
  • 1
  • 9