Modifier variable fenetre fille

matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008 - 5 juil. 2008 à 12:13
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008 - 6 juil. 2008 à 16:48
Bonjour tout le monde,

J'aimerais, à partir d'une fenetre mère, aller changer la valeur d'une variable d'une fenetre fille ouverte en pop up.
Pour cela, dans ma fenetre mere, j'ai créer un bouton submit :

qui appelle une fonction 'ouvrir' ayant pour parametres l'url de la pop up à ouvrir et la valeur de la variable à  modifier.

Voici cette fonction ouvrir :
function ouvrir (url,i){
    fenetre=window.open(url,'512','768');
    fenetre.document.getElementById('ici').value=i;
    fenetre.focus();
}

et ma variable à modifier ds la fenetre fille : 

Or, quand j'exécute ces bouts de code, j'ai l'erreur suivante : fenetre.document.getElementById("ici") has no properties.

A quoi celà est-il dû ? Peut ton vraiment modifier une valeur de variable de cette manière ?
Merci par avance pour vos conseils.
A+

16 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 juil. 2008 à 12:44
Bonjour,

parce que tu tentes de touche au contenu de la pop-up avant qu'elle ne soit créée.
met un setTimeout
ou n'agit que lorsque fenetre est définie ( while ( !fenetre ) )

mais bon, perso
   je ferais ce qu'il y a à faire dans le pop-up et pas dans la page mère
       ( window.opener accède à tous les éléments de cette page mère )
   je n'utilise plus les pop-up ( presque tout le monde les refsusent )

<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
5 juil. 2008 à 12:52
ok, merci pr ta réponse je vais étudier ça.
Si tu n'utilises plus les pop up, tu ouvre une nouvelle page en utilisant target="_blank"  ?
Ya t'il un moyen de donner focus à cette nouvelle page sans passer par les pop up ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 juil. 2008 à 13:03
quelle est l'utilité de ta pop-up ?

telle que j'employais, je remplace par un div ( ou autre )
caché qu'on montre quand c'est nécessaire.
tous les navigateurs d'aujourd'hui permettent de refuser les pop-up
( je pense que c'est même la valeur par défaut )
<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
5 juil. 2008 à 13:17
Je l'utilise pour un album photo, la pop up permet de zoomer sur une miniature.
Et j'aurais voulu passer dans cette pop up le numéro de la photo sur laql le visiteur a cliqué.
Etant donné que j'utilise l'url-rewriting, je passe pas mal de parametres dans l'url (galerie, sous galerie, dates, etc ...) mais j'aurais aimé "cacher" ce numéro de photo qui ne me parait pas important pour être passé dans l'url.
Du coup, j'avais généré un code comme celui là :

<form target="zoom" action="mon-url-et-tous-ses-parametres.html" method="post">   
     >
     
</form> 

Code qui fonctionne à merveille, je récupère bien mon n° de photo en cours dans la nouvelle page mais le focus sur cette nouvelle page n'est pas systématique, c'est pour cela que j'ai migré vers window.open etplus particulièrement la fonctionfocus().
Tu connaitrais une méthode qui permet de donner tjs le focus à cette fenetre ?
Merci pr ton aide ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 juil. 2008 à 14:47
>>donner tjs le focus à cette fenetre ?

pour qu'elle paraisse au 1er plan, je suppose ?

sur une nouvelle fenêtre, chez moi, par exemple, j'oblige un
nouvel onglet, sans perdre le focus sur la fenêtre actuelle,
donc, immodifiable ( et certaines sont refusée )

un pop-up, je le refuse, donc rien à faire non plus.

sinon, sur la nouvelle fenêtre, pop-up ou pas, quand on y perd le focus, le remettre

<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
5 juil. 2008 à 15:24
oui c'est ça, pour que ma nouvelle fenêtre apparaisse tjs au 1er plan, ya un code particulier à lui indiquer ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 juil. 2008 à 15:47
>>quand on y perd le focus, le remettre
onblur, focus.
mais bon, perso, ça ne fera que clignoter ( 3 fois ) dans la barre des tâches  !
ça ne mettra pas au 1er plan !
<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
5 juil. 2008 à 16:09
Ok, je vais me contenter de ça, au moins ca a l'avantage que ma page ne sera pas bloquée !
onblur, onfocus; tu les mets ds les body onload de ta page ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 juil. 2008 à 16:23
onblur certes par exemple, par contre on fait élément.focus()
( pas sûr des syntaxes en plus, je dis ça de mémoire d'Alzheimer ! )
<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
6 juil. 2008 à 10:14
Salut
Oui voilà, ton element.focus me gêne car element désigne un objet crée ... en javascript !
On tourne en rond non ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juil. 2008 à 10:47
?? 
et alors ? quelle importance ? que cet objet soit une balise
en dur html ou une balise créée en javascript, ça a un nome, un id....
on s'y réfère de la même manière.
quand on y accède, plus personne ne sait comment elle fut créé.
<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
6 juil. 2008 à 11:52
ok ok, voilà j'ai fait qqch comme ça, "tableau" étant l'id et le name d'un tableau déclaré plus bas ds la page:



mais ca ne me donne pas plus le focus ...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juil. 2008 à 12:23
lu chez selfHTML :

focus (element)
positionne le curseur ou la zone de saisie active sur l'élément concerné. N'attend pas de paramètre. Peut être utilisé sur: boutons pouvant être cliqués, cases à cocher, champs pour fichier à transmettre, éléments cachés dans les formulaires, Champs de saisie pour mot de passe, cases d'option, Boutons pour interrompre, Boutons pour envoyer, champs de saisie à une ligne, champs de saisie à plusieurs lignes
focus (window)
Rend une fenêtre active. Approprié pour l'utilisation d'une deuxième fenêtre mais aussi pour des fenêtres cadres. N'attend aucun paramètre

<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
6 juil. 2008 à 13:35
Tes liens sont pas mals mais :
- le focus(element) ne s'applique que pour les élements de la page en cours, page mère (cf premier message où tu me disais que je ne peux accéder aux élements par un getElementById de la pop up car elle n'était pas créée).
- le focus (window) : je vais étudier, ca me parait trés bien comme solution ça.

Merci en tout cas
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juil. 2008 à 14:25
>> le focus(element) ne s'applique que pour les élements de la page en cours
bien sûr que non.
quand on parle d'élement, c'est un élément... où qu'il soit.
<hr />                Cordialement            Bul        
0
matty30 Messages postés 34 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 juillet 2008
6 juil. 2008 à 16:48
Ok ca donne bien le focus avec la méthode focus(element) dans la fenetre fille mais celle ci ne passe systématiquement au premier plan ...
0
Rejoignez-nous