Jarod1980
Messages postés273Date d'inscriptionsamedi 5 juillet 2003StatutMembreDernière intervention31 mars 2015
-
24 avril 2007 à 12:16
Jarod1980
Messages postés273Date d'inscriptionsamedi 5 juillet 2003StatutMembreDernière intervention31 mars 2015
-
24 avril 2007 à 16:53
Bonjour,
Je suis en train de developper une application WYSIWYG. Dans mon application, je permet à l'utilisateur de changer la couleur de fond d'une cellule de son tableau. Lorsqu'il clique sur le bouton associé une popup s'ouvre où il peut choisir la couleur à appliquer. La couleur qu'il choisi s'applique bien à la cellule du tableau en cours mais le problème c'est que ma popup reste ouverte malgré la présence de window.close() à l'interieure de celle ci. Est ce que quelqu'un pourrait m'aider à résoudre ce problème.
Merci
Voici comment fonctionne mon programme :
ici c'est la fonction qui s'execute lorsque l'utilisateur clique sur le bouton changer couleur cellule :
function Multicolor(couleur) {
var selection = document.selection.createRange();
var cursor = document.selection.createRange();
var table = cursor.parentElement();
if (table.nodeName.toLowerCase() == "td") {
showInputPage("test.htm",330,320);
table.bgColor=couleur;
}
}
Dans ma popup, j'ai un bouton OK qui execute la fonction exit():
function exit() {
window.opener.Multicolor(document.form1.bColor.value);
window.close();
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 24 avril 2007 à 16:41
je n'ai pas la fonction showinput page, mais en remplaçant par window.open.... ça baigne
page mère :
<script type= "text/javascript">
function Multicolor(couleur) {
var selection = document.selection.createRange();
var cursor = document.selection.createRange();
var table = cursor.parentElement();
if (table.nodeName.toLowerCase() == "td") {
window.open("test.htm",330,320);
table.bgColor=couleur;
} else{alert("Vous devez sélectionner une et une seule cellule à la fois");}
}
</script>
exemple
aller
test.htm
<script type ="text/javascript">
function modifyCellColor(){
window.opener.Multicolor(document.form1.bColor.value);
window.close();
}
</script>
donc... l'erreur est ailleurs ? mais j'ai du ajouter/changer des "choses" !
mais j'évite les noms comme table, cursor,selection...
déjà eu quelques soucis. certes pas dans les mêmes
circonstances, mais c'est une précaution à prendre.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 24 avril 2007 à 14:02
Bonjour,
si window.opener.Multicolor(document.form1.bColor.value); se fait
aucune raison que window.close(); ne se fasse pas.
( même si j'éviterais des noms de fonctions comme exit. )
comme ça, à priori, je ne vois pas.
( mais on n'a pas toujours l'oeil du tigre. )
il faudrait probablement nous en montrer un poil plus ?
y a -t-il un message d'erreur ?
et ( si ce n'est déjà fait ) :
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
| Avec | et mieux : <label style="color: rgb(0, 128, 0);">Télécharger</label> |
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
|<label style="color: rgb(128, 0, 0);">FireFox</label> |regarder la "console d'erreurs" | FireBug |
| | Outils / Console d'erreurs | |
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
|<label style= "color: rgb(128, 0, 0);">Internet Explorer</label>|activer le deboggage : utils/options I le Debogger IE|
| | dans la liste, sous "Navigation" : décocher | |
| | ° Afficher une notification de chaque erreur de script | |
| | ° Désactiver le débogage de Scripts (autres applications)| |
| | ° Désactiver le débogage de Scripts (Internet Explorer) | |
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
Jarod1980
Messages postés273Date d'inscriptionsamedi 5 juillet 2003StatutMembreDernière intervention31 mars 20152 24 avril 2007 à 15:03
Salut,
Je n'ai aucune erreur lorsque j'exécute mon script, les modifications dans mon IE ont déjà été faites.
J'ai juste ma popup qui reste ouverte lorsque j'applique une couleur à une cellule de mon tableau.
Structure de mon programme :
Dans le programme principal : j'ai un bouton que j'ai appelé Changer couleur cellule et qui lance l'évènement
multicolor() lorsqu'on click dessus : onClick= "Multicolor();"
Ma fonction Multicolor(); verifie que l'on a bien sélectionné une balise td, si c'est le cas j'ouvre la page test.htm
qui est la page où l'on pourra choisir la couleur que l'on voudra affecter à la cellule du tableau.
function Multicolor(couleur) {
var selection = document.selection.createRange();
var cursor = document.selection.createRange();
var table = cursor.parentElement();
if (table.nodeName.toLowerCase() == "td") {
showInputPage("test.htm",330,320);
table.bgColor=couleur;
} else{alert("Vous devez sélectionner une et une seule cellule à la fois");}
}
Ma popup test.htm qui reste ouverte après avoir cliquer le bouton OK mais qui affecte bien la couleur choisie
à ma cellule.
test.htm :
<script>
function modifyCellColor(){
window.opener.Multicolor(document.form1.bColor.value);
window.close();
}
</script>
</head>
Jarod1980
Messages postés273Date d'inscriptionsamedi 5 juillet 2003StatutMembreDernière intervention31 mars 20152 24 avril 2007 à 16:53
Salut,
Effectivement en utilisant window.open ça marche nickel dans la page mère.
Le problème doit venir de ma fonction showInputPage pourtant c'est à peu près le même appel que
je fais avec ma fonction showInputPage.
En tout cas je te remerci beaucoup pour ton aide.
Je vais essayer de voir ce qui foire dans ma fonction
ShowInputPage.
Je mets mon code ma showInputPage ci dessous au cas où.
function showInputPage(url, width, height)
{
width=width+15;
height=height+15;