web-dev-qa-db-fra.com

Comment forcer l’ouverture du lien depuis iframe dans la fenêtre parente

J'ai besoin d'ouvrir le lien dans la même page parente, au lieu de l'ouvrir dans une nouvelle page.

remarque: La iframe et la page parent sont le même domaine.

335
Haim Evgi

J'ai trouvé que la meilleure solution consistait à utiliser la balise de base . Ajoutez ce qui suit à l'en-tête de la page dans l'iframe:

<base target="_parent">

Cela chargera tous les liens sur la page dans la fenêtre parente. Si vous souhaitez que vos liens soient chargés dans une nouvelle fenêtre, utilisez:

<base target="_blank">

Cette balise est entièrement prise en charge dans tous les navigateurs.

589
Chris Vasselli

Utiliser l'attribut cible:

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

Avec JavaScript:

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

Vous pouvez utiliser toutes les options

en cas de page parent uniquement:

si vous voulez ouvrir tous les liens dans une page parent ou dans un iframe parent, vous utilisez le code suivant dans la section head de iframe:

<base target="_parent" />

OU

si vous voulez ouvrir un lien spécifique dans une page parent ou dans un iframe parent, utilisez la méthode suivante:

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

OU

en cas d'iframe imbriqué:

Si vous voulez ouvrir tous les liens dans la fenêtre du navigateur (redirection dans l'URL du navigateur), vous utilisez le code suivant dans la section head de l'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>

OU

si vous voulez ouvrir un lien spécifique dans la fenêtre du navigateur (redirection dans l'URL du navigateur), utilisez la méthode suivante:

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

ou

<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>
24
Ahosan Karim Asik

Il existe un élément HTML appelé base qui vous permet de:

Spécifiez une URL par défaut et une cible par défaut pour tous les liens d'une page:

<base target="_blank" />

En spécifiant _blank, vous vous assurez que tous les liens à l'intérieur de l'iframe seront ouverts à l'extérieur.

14
vsync

Essayez target="_parent"attribut dans le anchor tag.

7
Gee

Comme indiqué, vous pouvez utiliser un attribut cible, mais il était techniquement déconseillé en XHTML. Cela vous laisse avec l'utilisation de javascript, généralement quelque chose comme parent.window.location.

7
Ryan McGrath

La solution la plus polyvalente et la plus multi-navigateur consiste à éviter l'utilisation de la balise "base" et à utiliser l'attribut cible des balises "a":

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

La balise <base> est moins polyvalente et les navigateurs ne sont pas cohérents dans leurs exigences de placement dans le document, ce qui nécessite davantage de tests entre navigateurs. En fonction de votre projet et de votre situation, il peut s'avérer difficile, voire totalement irréalisable, de parvenir au placement idéal dans plusieurs navigateurs de la balise <base>.

Faire cela avec l'attribut target="_parent" de la balise <a> est non seulement plus convivial pour le navigateur, mais vous permet également de distinguer les liens que vous souhaitez ouvrir dans l'iframe et ceux que vous souhaitez ouvrir. le parent.

4
Adelmar

Si vous utilisez iframe dans votre page Web, vous pouvez rencontrer un problème lors du changement de la page entière via un lien hypertexte HTML (balise d'ancrage) à partir de l'iframe. Il existe deux solutions pour atténuer ce problème.

Solution 1. Vous pouvez utiliser l'attribut target de la balise d'ancrage comme indiqué dans l'exemple suivant.

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

Solution 2. Vous pouvez également ouvrir une nouvelle page dans la fenêtre parente à partir d'iframe avec JavaScript.

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

Rappelez-vous ⇒ target="_parent" est devenu obsolète en XHTML, mais il est toujours pris en charge en HTML 5.x.

Plus d'informations peuvent être lues à partir du lien suivant http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html

3
user1788142

<a target="parent"> ouvrira les liens dans un nouvel onglet/fenêtre ... <a target="_parent"> ouvrira des liens dans la fenêtre parent/actuelle, sans ouvrir de nouveaux onglets/fenêtres. Don't_forget_that_underscore!

3
krisjd

Yah j'ai trouvé

<base target="_parent" />

Ceci est utile pour ouvrir tous les liens iframe ouverts dans iframe.

Et

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

Ceci peut être utilisé pour une page entière ou une partie spécifique de la page.

Merci à tous pour votre aide.

2
Ratan Paul

Essayez target="_top"

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>
0
Aamir Shahzad
   <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>
0
sandeep kumar