383 votes

Comment forcer l'ouverture d'un lien à partir d'une iframe dans la fenêtre parente ?

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

note : Le iframe et la page parentale sont le même domaine .

0 votes

667voto

Chris Vasselli Points 3697

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

<base target="_parent">

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

<base target="_blank">

Support des navigateurs

5 votes

Comment cela se passe-t-il dans les différents navigateurs ?

0 votes

Semble bogué dans IE, il faudrait peut-être le placer au-dessus d'autres éléments dans l'en-tête de la page, cf. ow.ly/d6i5Q

0 votes

@KristopherIves Merci ! J'ai mis à jour ma réponse avec un lien vers la documentation SitePoint sur la compatibilité des navigateurs.

158voto

nnevala Points 1690

Utilisez l'attribut cible :

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

1 votes

J'ai essayé ceci, c'est ouvert dans une nouvelle fenêtre

3 votes

+1 de ma part, la base target="_parent" fonctionne mais target="_parent" n'a jamais échoué pour moi !

8 votes

<base target="_blank"> est acceptable, mais la question porte ici sur un seul lien, et non sur le changement de comportement de tous les liens dans une iframe. Pour moi, c'est la réponse correcte.

40voto

yenssen Points 547

Avec JavaScript :

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

1 votes

Cette solution a fonctionné correctement pour moi. J'avais une balise de bouton dont je voulais qu'en cas de clic, la même page se recharge avec une nouvelle URL. Le bouton étant présent dans une iFrame, il fallait que la page se recharge avec la nouvelle URL et non l'iFrame. L'utilisation de window.parent a fait des merveilles. Merci pour ce travail !

7voto

Ryan McGrath Points 1259

Comme indiqué, vous pouvez utiliser un attribut cible, mais il est techniquement déprécié dans le XHTML. Il ne vous reste plus qu'à utiliser le javascript, généralement quelque chose comme parent.window.location .

10 votes

0 votes

@PaulD.Waite le lien que vous avez posté est maintenant 404s.

1 votes

@Dan : aha, oui merci. Nouveau lien : dev.w3.org/html5/spec/

7voto

Gee Points 117

Essayez target="_parent" attribut à l'intérieur de la anchor tag .

0 votes

J'ai essayé ceci, c'est ouvert dans une nouvelle fenêtre

4 votes

Essayez target="_top". L'iframe peut contenir des iframes imbriquées ? Ou le lien actuel est ouvert par le javascript sur l'événement onclick ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X