Envoyé par : jeremie
Date : 30/01/2007 10:31
Bonjour à tous!
Alors voila j'ai une fentre principale qui ouvre une deuxième fenetre avec window.opendialog avec certains paramètres.
Dans la deuxième page j'arrive a exploiter les données passées en parametres dans window.opendialog mais je n'arrive pas a modifier les variables de la premiere fenetre.
window.openDialog('chrome://pecoto/content/correction.xul',...) />
ensuite dans la deuxieme page
opener.document.t_Lignes[numligne].value = newligne;
t_Lignes est un tableau qui se trouve dans la premiere page.
En bref, à partir d'une fenetre Dialog, je ne peux modifier une variable (ici un tableau) déclarée dans la page appelante de ma dialog
Si vous avez un tuyau .....
Merci
Envoyé par : rande
Date : 30/01/2007 11:05
window.opener.... ca devrait mieux marcher
Envoyé par : jeremie
Date : 30/01/2007 11:08
Merci de ton aide mais ca marche pas j'avais deja essayer :)
window.opener.document.t_Lignes has no properties
Si ca peut aider quelqu'un...
Envoyé par : rande
Date : 30/01/2007 14:45
Je viens de faire un test, toutes les variables que tu declare en global dans la fenetre d'origine sont accessible via : window.opener.document.defaultView
[window] var theVariable = null;
[popup] window.opener.document.defaultView.theVariable = "value";
mais remarque je n'ai pas utiliser openDialog, juste open. Il y a peut etre une difference dans l'implementation.
Tu peux toujours regarder dans le DOM Inspector.
Envoyé par : jeremie
Date : 30/01/2007 15:53
Le problème c'est que je ne peux pas utiliser un window.open car je ne peux pas passer de paramètre vers la popup avec cette méthode.
Par contre window.opendialog permet de passer des parametres qui son recupérable dans la popup.
Dans la window principale je passe 4 paramètres.
window.openDialog('chrome://pecoto/content/correction.xul','Correction','chrome,modal,width=600,height=600,centerscreen',"+i+",'"+ligne+"',"+j+",'"+ligneErreur+"');
Puis je les recupere dans la popup
var numligne = window.arguments[0]; var ligne = window.arguments[1]; var numChamp = window.arguments[2]; var ligneErreur = window.arguments[3];
Mon affectation marche bien mais je n'arrive pas modifier une variable de la fenetre principale. Comment faire?
Help!
Envoyé par : chBok
Date : 30/01/2007 17:47
Est-ce cela que tu cherches : http://developer.mozilla.org/en/docs/DOM(..) ? Il n'y a plus qu'à trouver un volontaire pour traduire en français cette page LOL
je cite :
var retVals = { address: null, delivery: null }; openDialog("http://example.tld/zzz.xul", "dlg", "modal", "pizza", 6.98, retVals);
Envoyé par : Raphael
Date : 30/01/2007 22:35
Si c'est cette technique, je l'utilise... doit y avoir un post sur le forum avec le même problème que j'avais posé y a quelques mois. Ca marche bien.
Sinon pourquoi ne pas utiliser une variable globale que tu changes dans ton dialog ?
Envoyé par : jeremie
Date : 31/01/2007 08:49
Cette solution serait parfaite mais comment faire pour déclarer une variable global a toutes les pages?
Merci
Envoyé par : Raphael
Date : 31/01/2007 09:17
Bah si je me souviens bien... tu déclares une variable dans ta fenêtre principale... et tu lui affectes une valeur dans ton dialog, a priori ça marche car j'utilise cette technique pour quelques actions il me semble... genre ajouter un dossier/fichier/... et quand je retourne sur ma fenêtre principale c'est mis à jour.
Envoyé par : jeremie
Date : 31/01/2007 09:26
Ok jai effectué plusieurs essai mais ca ne marche pas.
j'ai essayé :
window.opener.document.t_Lignes[numligne] = newligne;
Mais aussi :
window.opener.t_Lignes[numligne] = newligne
Mais j'ai toujours la même erreur window.opener.document.t_Lignes has no properties Voila
Envoyé par : Raphael
Date : 31/01/2007 11:33
Voici un exemple de mon code :
Dans mon main.js :
var UserFormatID = getFormat();
En fait, de base, je charge mon format... grâce à ma fonction qui va chercher ma BDD SQlite3...
Dans mon prefs.js, chargé depuis mon prefs.xul qui est ma boite de dialogue de préférences :
// Préférences générales function saveMain() { var Format_ID = document.getElementById('deck_format').selectedItem.getAttribute('value'); window.opener.ydmprefs.do("UPDATE main SET Value='"+Format_ID+"' WHERE Pref_ID='1'"); window.opener.UserFormatID = window.opener.getFormat(); initPrefs(); }
Ici, je peux modifier et sauvegarder mon format... et mon avant-dernière ligne modifie ma variable UserFormatID qui est donc a priori globale... =)
J'espère que ce petit exemple pourra t'aider...
Envoyé par : cokinou
Date : 31/01/2007 13:28
Sinon, il y a une autre méthode un peu moins fine C'est de passer ton objet window en paramètre de ton openDialog().... comme ca tu peux en faire ce que tu veux dans ta fenetre de dialog.
Exemple :
Dans ton fichier principal :
openDialog("http://example.com/test.xul", "test", "modal", window);
Dans ta fenetre de dialogue :
var winOpener = window.arguments[0]; winOpener.document.t_Lignes[numligne].value = newligne;
Envoyé par : jeremie
Date : 01/02/2007 08:39
Voila j'ai trouvé comment faire. C'est pas très propre mais ca marche.
Fenetre principale :
wndow.openDialog('chrome://pecoto/content/correction.xul','Correction','chrome,modal,width=600,height=600,centerscreen',"+i+",'"+ligne+"',"+j+",'"+ligneErreur+"');
popup :
window.opener.document.getElementById("texte_recup").innerHTML = newligne;
Ensuite je renvoi newLigne dans la page principale, puis je met <html: pre en hidden
Voila
Merci Raphael et cokinou et les autres
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.