[javascript] rafraichir une fenetre autre que l'opener...

rafraichir une fenetre autre que l'opener... [javascript] - Programmation

Marsh Posté le 11-06-2001 à 12:56:55    

salut,
 
j'ai une fenetre appelée princ. Depuis cette fenetre, j'en ouvre une deuxieme (appelée fen2), qui elle meme appelle une troisieme fenetre appelée fen3, qui ferme fen2. Quand je vais fermer fen3, je voudrai qu'elle oblige princ a se recharger.
Je ne trouve pas les methodes pour le faire. Si quelqu'un connait la solution, je suis preneur et serait reconnaissant :)
 
merci d'avance...
laurent

Reply

Marsh Posté le 11-06-2001 à 12:56:55   

Reply

Marsh Posté le 11-06-2001 à 13:08:59    

t'as essayé opener.opener ?
 
il faut qd même d'abord testé si la fenêtre existe toujours.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-06-2001 à 14:34:56    

en fait, il faudrait que je trouve une commande du style
window("princ" ).location.reload()... mais bon, ca marche pas trop...

Reply

Marsh Posté le 11-06-2001 à 14:40:29    

bah opener.opener.location.replace()


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-06-2001 à 14:50:10    

marche pas, et c assez normal, vu qu'une fois la fenetre intermediaire fermée, il ne peut pas retrouver la fenetre initiale

Reply

Marsh Posté le 11-06-2001 à 14:54:49    

oups j'avais pas capter que la fenêtre intermédiare était fermée.
 
ça va être plus dur alors...


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-06-2001 à 17:31:24    

bon j'ai pas suivi le pb a fond (par flemme :) ), mais en javascript pour forcer le reload d'une page (sans passer par le cache du navigateur donc) il faut faire
document.location.reload(true);
c'est le true qui est important !
voila  :sol:

Reply

Marsh Posté le 11-06-2001 à 23:14:40    

-je crois que tu devrais pas refermer la deuxième fenetre (celle elle qui casse la chaine !! )
 
et puis au lieu d'essayer de reloader la premiere, tu pourrais utiliser la troisième fenetre à afficher l'url (de la premiere fenetre)
tous ça moyennant une variable passé par url pour la mise à jour !

Reply

Marsh Posté le 11-06-2001 à 23:41:30    

en fait, c bcp plus compliqué que ce que j'ai ecrit.
j'utilise portal d'oracle, et celui ci permet de definir des zones dans lesquelles tu peux faire du code (ici, c JSP/javascript), les zones etant independantes les unes des autres. Dans une des zones, j'ai des information qui proviennent d'une base de données,sur lesquels je cree des liens.quand je clique sur un lien, j'ai une nouvelle fenetre qui s'affiche, et qui propose deux choix differents, chacun affichant une troisieme fenetre differente.  
une fois une action faite dans le troisieme fenetre, cette action a une incidence sur la base de donnees, et donc je dois raffraichir la premiere fenetre, car l'element sur lequel j'ai cliqué pour obtenir la deuxieme fenetre a ete modifié . ouf, c la fin
 
donc l'idee, c de nommer la premiere fenetre qui est generee par une autre. donc ca donne un truc du style:
 
newWindow=open("......","fen_principale" )
 
donc je sais quel est le nom de la fenetre a rafraichir. le hic, c que je ne trouve pas de methode.
comme vs l'avez suggere, un window.location.reload() ou opener.location.reload() fonctionnerait si je devais rafraichir la fenetre ouvrante. mais la , c la fenetre ouvrante la fenetre ouvrante (super clair) que je dois rafraichir.
 
et je ne peux pas me permettre de ne pas fermer la deuxieme fenetre, car au niveau de l'ergonomie, c pas top de laisser a l'ecran une fenetre qui n'a rien a voir...
 
quoiqu'il en soit, je vous remercie de vous etre donné la peine de repondre. si je peux vous aider, je n'hesiterai pas !

Reply

Marsh Posté le 12-06-2001 à 01:00:23    

bon... moi non plus j'ai pas tout suivi, mais je vais y aller de ma proposition ;)
 
pourquoi ne pas avoir dans chacune de tes pages HTML une variable stockant la fenetre principale et la passer a chaque popup que tu ouvres:
 
------- DANS LA PAGE PRINCIPALE -------  

Code :
  1. <script>
  2. function pop(){
  3. win = window.open('pop1.html');
  4. win._firstopener = self;
  5. }
  6. </script>
  7. <form>
  8. <input type="button" onclick="pop()">
  9. </form>


 
------- DANS LA 1ere POPUP -------  

Code :
  1. <script>
  2. var _firstopener;
  3. function pop(){
  4. win = window.open('pop2.html');
  5. win._firstopener = _firstopener;
  6. }
  7. </script>
  8. <form>
  9. <input type="button" onclick="pop()">
  10. </form>


 
------- DANS LA 2eme POPUP -------  

Code :
  1. <script>
  2. var _firstopener;
  3. function doClose(){
  4. _firstopener.close();
  5. }
  6. </script>
  7. <form>
  8. <input type="button" onclick="doClose()">
  9. </form>


 
l'inconvenient, c'est qu'il te demande si tu veux fermer la fenetre ...  
 
Tu peux aussi passer un tableau, si tu as besoin de garder l'historique des fenetres ouvertes...


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 12-06-2001 à 01:00:23   

Reply

Marsh Posté le 05-08-2001 à 17:08:49    

je remet ce message à l'ordre du jour
j'ai exactement le meme probleme en ce moment
peut-etre avez-vous trouvez une reponse !
merci

Reply

Marsh Posté le 05-08-2001 à 17:52:15    

et bien apres avoir passe plusieurs heures a cherche j' ai enfin trouve ! arghhh trop content
je vous donne la solution :
 
dans la page a recharger que j'appelle "main"
<script LANGUAGE="JavaScript">window.name="main";</script>
 
dans les pages d'apres (evenement a leur fermeture par exemple)
<BODY onUnload="javascript:var win=window.open('','main');win.location.reload(true);">
 
 
A+

Reply

Marsh Posté le 20-02-2002 à 19:39:38    

je remonte ce topic juste pour signaler qu'il m'a ete super utile ! :jap:  
 
merci aux nombreuses personnes ultra competentes qui font vivre ce forum. Ces personnes se reconnaitront d'elles meme :hello:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed