passer une variable JS d'une page à l'autre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : passer une variable JS d'une page à l'autre

par VaN » 16 mars 2007, 17:55

Et dans ta popup le JS s'occupe de redimensionner:

Code : Tout sélectionner

<body onload="self.resizeTo(<?php print $_GET["largeur"]; ?>,<?php print $_GET["hauteur"]; ?>);">
Tout simplement maginifique. Je fais quelques ajustements et ça passera nickel.

Merci bien pour cette fonction.

par tanky » 16 mars 2007, 17:41

Tu peux passer les dimensions que la popup doit avoir à l'ouverture:

Code : Tout sélectionner

url = "popup.php?largeur=640&hauteur=480"; open_popup(url);
Et dans ta popup le JS s'occupe de redimensionner:

Code : Tout sélectionner

<body onload="self.resizeTo(<?php print $_GET["largeur"]; ?>,<?php print $_GET["hauteur"]; ?>);">

par VaN » 16 mars 2007, 16:49

Je préfère ne pas fermer la popup quand je change de page (demande du client, si un popup est ouvert, il faut qu'il le reste jusqu'a ce qu'il soit fermé manuellement ou qu'un autre popup soit appelé).

Ryle, j'ai tenté de faire ce que tu proposes, mais cela ne marche pas non plus il semblerait :

Code : Tout sélectionner

if(!newWin) { alert('newWin n\'existe pas'); var newWin = null; }
Mon test ne semble pas bon, il m'affiche dans tous les cas l'alert.

par Ryle » 16 mars 2007, 16:22

Tu peux en javascript récupérer les valeurs passées dans l'url (en la parsant tout simplement) mais je ne crois pas que tu puisses y passer d'objets.

Tu peux donc effectivement refermer la popup lorsque ta page principale se décharge (onUnload()) ou tester si la fenêtre nommée "newWin" n'existe pas (via le dom) lorsque tu déclares ta variables :)

par AB » 16 mars 2007, 16:07

Bonjour,

Sans répondre directement à ta question, pourquoi ne fermerais-tu pas le pop up à chaque changement de page?

passer une variable JS d'une page à l'autre

par VaN » 16 mars 2007, 14:28

Bonjour,

après plusieur minutes de recherche, j'ai finalement réussi à cibler mon problème :

Je met en place une galerie de photos : Les miniatures, quand on clique dessus, ouvre un popup, pour afficher la photo dans sa taille normale.
Mon script, travaillé au fil du temps, ouvre un popup, puis mets le focus dessus. La taille de ce popup s'adapte à la taille de la photo qu'il va contenir. Mon script vérifie qu'un popup existe deja. Si c'est le cas, il le ferme, pour le reouvrir, avec les bonnes dimensions :

Code : Tout sélectionner

// on déclare la variable du popup var newWin = null; function open_popup(url, width, height) { // si un popup de photo est dejà ouvert, on va le fermer, pour ré-actualiser les dimensions pour le nouveau if (newWin != null) { if(!newWin.closed) newWin.close(); } // on ouvre le popup newWin = window.open(url, 'newWin', 'resizable=no, location=no, menubar=no, status=no, scrollbars=no, menubar=no, width='+width+', height='+height); // on place le popup en premier plan newWin.focus(); }
Cela marche très bien lorsque je reste sur la même page, et que je clique sur plusieurs minaitures à la suite : il ferme le popup si il existe, et le reouvre, aux bonnes dimensions, pour afficher l'image.

Mon problème apparait lorsque je change de page, et que je garde un popup ouvert : En effet, au chargement de cette nouvelle page, le script se relance, et redéclare la variable newWin comme étant null :

Code : Tout sélectionner

var newWin = null;
Ce qui fait que si je clique sur une des miniatures de cete nouvelle page, le script ne comprend pas qu'il faut fermer le popup, et m'affiche la photo dans l'ancien, du coup la taille du popup n'est pas du tout adapté à la taille de la nouvelle photo.

Voilà, j'espère avoir été assez clair. Il me faudrait une solution pour résoudre ce problème. Réussir à passer l'existence de la variable newWin d'une page à l'autre ? autre chose ?