Se connecter / S'enregistrer
Votre question

[javascript]Lancer history.back() dans une frame

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
Anonyme
11 Décembre 2007 10:35:53

Bonjour
voilà ce que je souhaite faire : j'ai une page html composée de plusieurs frames
dans la première je voudrais lancer history.back(), mais que celle ci s'ouvre dans une autre frame
j'ai tenté :
  1. <A target=FRAME2 HREF=javascript:FRAME2.history.back() >Le Lien</A>

et aussi
  1. parent.frames["FRAME2"].window.location=history.back();


mais la page s'ouvre sur toute la page entière et les frames disparaissent
vous auriez une idée ?

Autres pages sur : javascript lancer history back frame

11 Décembre 2007 11:50:15

si on accède toujours à ta frame avec un lien, tu peux utiliser document.referrer:
  1. <script language="javascript">document.write ('<a target="_blank" href="' + document.referrer + '">retour avec lien</a>');</script>
Anonyme
11 Décembre 2007 12:31:36

Avant d'essayer ton script j'ai vu quelque chose qu'il n'allait pas : on indique pas dans quel frame le referrer va s'ouvrir :/  à moins d'avoir mal compis
par exemple j'ai un lien dans frame1, et le history.back() doit s'ouvrir dans frame2
j'ai quand meme essayé ce script; lorsqu'on clique sur le lien, le frame qui contenait ce lien s'ouvre sur une page entière, en ne faisant même pas appel au referrer
je vous tiens au courant si j'y arrive
Contenus similaires
11 Décembre 2007 13:44:52

pour la cible, il suffit de changer le target, j'ai mis "_blank" comme exemple
pour ce qui est du referrer, si tu testes juste sur des fichiers sans serveur web, ca ne fonctionne pas car referrer n'est pas renseigné.
de même il se peut que le navigateur ne le renseigne pas, mais c'est pas le cas par défaut (pour ff en tout cas)
Anonyme
11 Décembre 2007 22:46:18

Ah oui.. le _blank me paraissait louche
alors j'ai fais le changement je lance le fichier html sur mon serveur web local
je vais sur google, puis sur ma page et la je vois que le referer ne vaut pas google mais ma page en cours ...

mais au départ je voulais pouvoir utiliser history.back() pour ensuite avoir accès au history.go() :/  alors j'ai tenté ceci :

  1. <A target=FRAME3 href="javascript:parent.FRAME3.history.go(-1)" >Le Lien1</A>

et aussi
  1. <A target=FRAME3 href="javascript:hop()" >Le Lien2</A>

où hop est défini dans FRAME3 de cette façon :
  1. function hop(){
  2. history.go(-1);
  3. }

dans ces deux cas, la page précédente s'ouvre bien mais dans la page entière
en gros history.go() casse toute les frames :/ 
je continue mes recherches
11 Décembre 2007 22:53:30

Citation :

je vais sur google, puis sur ma page et la je vois que le referer ne vaut pas google mais ma page en cours ...

c'est normal :) , c'est pour ca que je t'ai mis dans ma 1ere réponse:
coca25 a dit :
si on accède toujours à ta frame avec un lien, tu peux utiliser document.referrer

si tu y accèdes depuis le bookmark ou en mettant l'adresse, referrer n'est pas renseigné.

l'historique (en tout cas de ce j'ai pu voir sous ff) garde un historique global et non pas par frame et par mesure de sécurité, on ne peut pas controler la manière dont il se comporte. un retour en arrière est vraiment un retour en arrière dans l'affichage, on ne peut pas changer l'affichage.
Anonyme
11 Décembre 2007 23:12:07

Citation :
si tu y accèdes depuis le bookmark ou en mettant l'adresse, referrer n'est pas renseigné.

au temps pour moi je faisais pas la différence ..
Citation :
l'historique (en tout cas de ce j'ai pu voir sous ff) garde un historique global et non pas par frame

à la rigueur je pense pas que cela gêne dans ce cas, puisque je cherche pas l'historique d'une frame en particulier, mais à forcer l'affichage de history.go (et donc l'historique de la page globale) dans une seule frame
Citation :
un retour en arrière est vraiment un retour en arrière dans l'affichage, on ne peut pas changer l'affichage.

oui j'ai l'impression que ce que je veux faire est "impossible"
merci de ton aide, je tiendrais au courant si une illumination me parvient
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS