2010-06-07 7 views
1

J'ai quelques pages avec des iframes en eux. Je veux ajouter un lien/bouton à l'intérieur de l'iframe, pour que le navigateur revienne sur une page de l'histoire. Mais je veux que le PARENT revienne, pas l'iframe lui-même.Javascript retour bouton pour la fenêtre parent iframe

j'avais à l'origine ce qui rend la page iframe revenir (si elle existe):

<a href="javascript:history.back()">&laquo; Go back</a> 

J'ai essayé window.parent.history.back() et window.parent.document.history.back() mais ni l'un fonctionne. Il n'y a pas de problèmes inter-domaines accédant à l'iframe du parent et vice-versa.

Répondre

4

J'ai fait quelques essais pour essayer de répondre à cette question - au moins dans IE8.

La navigation dans l'iframe semble avoir un impact sur l'historique des parents. J'ai testé cela en ajoutant du code dans la page parente et dans les pages enfants liées qui utilise l'alerte pour montrer la valeur de history.length. Naviguer vers une nouvelle fenêtre dans l'iframe provoque history.length à incrémenter sur la page parente et sur la page enfant. La seule façon que je peux penser pour contrôler le comportement du dos que vous désirez serait d'utiliser history.go (XXX) où XXX est un nombre codé en dur ou est dérivé en gardant une trace du nombre de chargements de pages depuis qu'ils chargé l'iframe.

Ma suggestion personnelle serait d'explorer une alternative à iframe si vous le pouvez - cette approche a un peu d'odeur de code. :)

0

Vous pouvez utiliser ceci:

<a href="javascript:self.history.back()">back</a> 

    or: 

    <a href="javascript:self.history.go(-1)">back</a> 

C'est un travail pour moi!

;)

+0

'self.history' est le même objet que' history', donc je ne vois pas comment cela fera une différence. La réponse de Mayo décrit pourquoi le comportement est destiné. – lonesomeday

+0

ne serait pas self.history se référer spécifiquement à l'image actuelle que le lien est dans et pas l'histoire des parents? – teewuane

Questions connexes