Réponses:
J'ai trouvé que la meilleure solution était d'utiliser la balise de base . Ajoutez ce qui suit en tête de page dans l'iframe:
<base target="_parent">
Cela chargera tous les liens sur la page dans la fenêtre parent. Si vous souhaitez que vos liens se chargent dans une nouvelle fenêtre, utilisez:
<base target="_blank">
Cette balise est entièrement prise en charge dans tous les navigateurs.
<base target>
devrait venir avant tout <a href>
, car il définit le contexte de navigation par défaut pour les liens suivants; <base href>
doit précéder toute référence d'URL ( <* href>
<* src>
<form action>
<object data>
…) car elle définit l'URL de base par rapport à laquelle les URL relatives sont résolues.
<base
balise n'a pas de fermeture selon la spécification w3.org/TR/html5/document-metadata#the-base-element donc elle devrait l'être<base target="_parent" >
Utilisez target-attribute:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
est ok, mais la question ici concerne un seul lien, pas le changement de comportement de tous les liens sur iframe. Pour moi, c'est la bonne réponse.
Vous pouvez utiliser toutes les options
en cas de page parent uniquement:
si vous souhaitez ouvrir tous les liens dans la page parent ou iframe parent, vous utilisez le code suivant dans la section head de iframe:
<base target="_parent" />
OU
si vous souhaitez ouvrir un lien spécifique dans la page parent ou iframe parent, vous utilisez la manière 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 souhaitez ouvrir tous les liens dans la fenêtre du navigateur (rediriger dans l'URL du navigateur), vous utilisez le code suivant dans la section head de 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 souhaitez ouvrir un lien spécifique dans la fenêtre du navigateur (rediriger dans l'url du navigateur), vous 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>
Il y a 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 sur 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.
Comme indiqué, vous pouvez utiliser un attribut cible, mais il était techniquement obsolète en XHTML. Cela vous laisse utiliser javascript, généralement quelque chose comme parent.window.location
.
Si vous utilisez iframe dans votre page Web, vous pouvez rencontrer un problème lors de la modification 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 cible 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 parent à partir d'iframe avec JavaScript.
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
N'oubliez pas que ⇒ target="_parent"
a été déprécié 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
La solution la plus polyvalente et la plus multi-navigateurs consiste à éviter l'utilisation de la balise "base" et à utiliser à la place l'attribut cible des balises "a":
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
La <base>
balise est moins polyvalente et les navigateurs ne sont pas cohérents dans leurs exigences pour son placement dans le document, ce qui nécessite davantage de tests inter-navigateurs. En fonction de votre projet et de votre situation, il peut être difficile, voire totalement impossible, d'obtenir le placement idéal de la <base>
balise entre les navigateurs .
Faire cela avec l' target="_parent"
attribut de la <a>
balise est non seulement plus convivial pour le navigateur, mais vous permet également de faire la distinction entre les liens que vous souhaitez ouvrir dans l'iframe et ceux que vous souhaitez ouvrir dans le parent.
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;
})
})
Cela peut être utilisé pour une page entière ou une partie spécifique de la page.
Merci à tous pour votre aide.
Essayer target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
le même que "_parent"
?
<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>