MODAL ET PAGE APPELANTE

cs_FraGag Messages postés 81 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 18 avril 2008 - 9 déc. 2005 à 01:51
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 - 24 févr. 2006 à 18:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34989-modal-et-page-appelante

Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
24 févr. 2006 à 18:29
Il n'y a pas vraiment de fonction du genre sleep comme en PHP, mais tu peux utiliser les fonction setTimeout("fonction()",1000) ou setInterval("fonction()",1000). La première fonction vas exécuter le code dans le laps de temps donne en 2e paramètre et la deuxième fonction, exécuter la commande à tout les x millisecondes.
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
24 févr. 2006 à 09:57
Ha oui, autant pour moi... Désolé pour steveurcle... (la remarque reste valable puisqu'indépendante de l'auteur).

En effet, le probleme que tu souleve est le VRAI probleme de ma fenetre modale... que la fenetre conserve le focus ne m'interresse que modérément. Il me faut par contre, en effet, une fenetre qui me retourne une valeur, chose que je ne peux pas faire avec l'instruction open (accessoirement, une fenetre modale suspend l'execution du code, fut-ce en HTML... si seulement cela m'etait possible, je ferais un algo du type:
Variant FenetreModale C'EST:
TANT QUE maFenetre.ouverte = VRAI ALORS
ATTEND 1 seconde
FIN TANT QUE
RETOURNE maFenetre.valeurChoisie
FIN FenetreModale
sauf que je sais pas s'il y a une fonction en javascript qui me permet de suspendre le code pendant un laps de temps donné (ici, ligne "ATTEND 1 seconde"))
cs_FraGag Messages postés 81 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 18 avril 2008
24 févr. 2006 à 07:13
AbriBus -> J'ai vu il n'y a pas longtemps ce code tout simple quelque part, à mettre dans la page qui doit être modale :

...

...

...

Quand la fenêtre perd le focus (est "blurrée"...), on lui redonne le focus. Il suffit donc de simplement appeler window.open() pour ouvrir cette fenêtre qui gardera le focus tant qu'elle sera affichée. Par contre, je crois que showModalWindow() ne retourne que quand la fenêtre est fermée, alors que open() retourne tout de suite. Alors, si la fenêtre qui affiche la fenêtre "modale" doit retrouver une valeur de celle-ci, il faudrait plutôt que la fenêtre modale envoie elle-même les données à la fenêtre appelante.

Quand tu a dit "FraGag> Malgrés la qualité de ton src, ...", tu ne te serais pas trompé ? C'est steveurcle l'auteur, moi je ne fais que corriger et donner des solutions alternatives... :)
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
23 févr. 2006 à 15:08
Salut a tous,
j'ai decouvert la commande window.showModalDialog il y a quelque dizaines de minutes et je croyais bien que ca serait l'apotéose car c'est exactement ce que je cherchais a faire...
Mais comme chacun sait, chaque medaille a son revers, voici donc le travers que j'ai decouvert sur cette fonction...:
window.showModalDialog ne fonctionne QUE sur IE4.0 ou +... ce qui n'inclu pas nottament FireFox.
Voila le lien de chez billou qui parle de cette fonction:
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/showmodaldialog.asp

Quelqu'un aurait-il une alternative a ce probleme ?
FraGag> Malgrés la qualité de ton src, je ne met pas de note car j'ai pas trouvé la solution a mon probleme... mais c'est de bonne qualité.

AbriBus
cs_FraGag Messages postés 81 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 18 avril 2008
18 déc. 2005 à 23:07
Arto_8000 -> Au contraire, c'est bel et bien standard. Si je regarde dans le DTD Strict du HTML 4.01, on voit :
<!ELEMENT P - O (%inline;)* -- paragraph -->
et :
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
ainsi que :
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
et il n'y a pas un seul form là-dedans (idem pour le HTML 4.0) ! En clair, ça dit qu'on peut mettre des contrôles de formulaires directement dans un paragraphe. Je le savais, parce que j'ai déjà validé des documents avec des sans <form>... C'est pas pour être méchant, hein... De toutes façons, il manque l'attribut « action » aux <form>s.
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
18 déc. 2005 à 19:17
FraGaG -> Bien sur que ça peut s'afficher sans les balises form, mais c'est pas du tout selon les normes w3c.

steveurcle -> Tu peux remplacer

window.document.forms['testModalForm'].elements['selectTest'].value
par :
window.document.testModalForm.selectTest.value;
DjZebulon Messages postés 19 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 12 décembre 2005
12 déc. 2005 à 12:33
Bonjour,
Code tres interressant pour moi, j'ai simplment un petit probleme (qui est bete, mais la tête dans le brouillard), j'ai un input text en plus sur la fenetre appelante et je voudrais avoir un champ a completer sur la deuxième fenetre qui renvois sa value au champs sur appelant §§
Pas tres claire mais simple je pense
Merci
Stef
cs_johann1 Messages postés 170 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 9 janvier 2008
9 déc. 2005 à 12:57
Sympa steveurcle ... C'est intéressant je trouve!
Bonne continuation!
cs_FraGag Messages postés 81 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 18 avril 2008
9 déc. 2005 à 01:51
Trois problèmes :
1- Pas nécessaire de mettre "javascript:" dans les attributs d'événements (onclick, onload), seulement dans les liens hypertexte.
2- Il manque un t à « dialogHeight ».
3- Ce n'est pas nécessaire d'entourer les champs de formulaire dans un formulaire (<form>), ils peuvent vivre sans <form> ! En plus, ça allonge le code inutilement.

Pour ceux qui n'auraient rien dans le pop-up, vérifiez l'extension (il faut .html, moi je mets toujours .htm). C'est dommage que ça ne fonctionne que sous Internet Explorer (showModalDialog n'est pas standard, je crois).
Rejoignez-nous