Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouvrir une fenêtre de taille donne avec un form

16 réponses
Avatar
FiLH
Bonjour,

J'ai un form qui transmet des données par une méthode post.
J'aimerais que ce form puisse ouvrir une fenêtre (ça je sais faire
avec un target) mais comme cette fenêtre n'afficher que deux phrases,
je voudrais pouvoir avoir une petite fenêtre.

Bon un resize c'est pas vraiment top.

Sinon il faudrait que je fasses passer mes valeurs en méthode post
sans form, et là je ne sais pas.

FiLH

--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail filh@filh.org
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/

10 réponses

1 2
Avatar
ASM
FiLH a écrit :
Bonjour,

J'ai un form qui transmet des données par une méthode post.
J'aimerais que ce form puisse ouvrir une fenêtre (ça je sais faire
avec un target) mais comme cette fenêtre n'afficher que deux phrases,
je voudrais pouvoir avoir une petite fenêtre.



javascript dans le head :

var truc = false;
function pop() {
if(!truc || truc.closed)
truc = window.open('','ici',';height`');
truc.focus();
}


<form target="ici" onsubmit="pop();" ... >

ça va ouvrir l'action du form dans le popup
et, si pas de JS, dans une nvelle fenêtre normale

explick : form et popup ont le même target ('ici')
Avatar
ASM
ASM a écrit :

correctif :

javascript dans le head :

<script type="text/javascript">
var truc = false;
var h = (screen.height-100)/2;
var r = (screen.width-420)/2;

function pop() {
if(!truc || truc.closed)
truc = window.open('','ici',',height`,top='+h+',left='+r);
truc.focus();
}
</script>
Avatar
FiLH
ASM writes:

FiLH a écrit :
> Bonjour,
> J'ai un form qui transmet des données par une méthode post.
> J'aimerais que ce form puisse ouvrir une fenêtre (ça je sais faire
> avec un target) mais comme cette fenêtre n'afficher que deux phrases,
> je voudrais pouvoir avoir une petite fenêtre.

javascript dans le head :

var truc = false;
function pop() {
if(!truc || truc.closed)
truc = window.open('','ici',';height`');
truc.focus();
}


<form target="ici" onsubmit="pop();" ... >

ça va ouvrir l'action du form dans le popup
et, si pas de JS, dans une nvelle fenêtre normale

explick : form et popup ont le même target ('ici')



Ah oui, c'est exotique comme méthode, mais effectivement...

Merci.

FiLH


--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
Avatar
CrazyCat
FiLH a écrit :
var truc = false;
function pop() {
if(!truc || truc.closed)
truc = window.open('','ici',';height`');
truc.focus();
}
<form target="ici" onsubmit="pop();" ... >


Ah oui, c'est exotique comme méthode, mais effectivement...



exotique? c'est ce que j'utilise depuis longtemps pour l'applet de mon
réseau IRC, à une petite différence près: je ne définis pas la target
dans mon formulaire mais dans le javascript, pour garder la possibilité
d'ouvrir dans la même page (je n'aime pas les fenêtres).


--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net
Avatar
filh
CrazyCat wrote:

FiLH a écrit :
>> var truc = false;
>> function pop() {
>> if(!truc || truc.closed)
>> truc = window.open('','ici',';height`');
>> truc.focus();
>> }
>> <form target="ici" onsubmit="pop();" ... >
> Ah oui, c'est exotique comme méthode, mais effectivement...

exotique?



Oui, dans le sens qu'on ouvre une fenêtre au temps 1 pour s'en reservir
ensuite, il y a en fait un total découplage entre les deux.

c'est ce que j'utilise depuis longtemps pour l'applet de mon
réseau IRC, à une petite différence près: je ne définis pas la target
dans mon formulaire mais dans le javascript, pour garder la possibilité
d'ouvrir dans la même page (je n'aime pas les fenêtres).



Dans la fonction du onsubmit tu positionne target ?

FILH

--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
Avatar
ASM
CrazyCat a écrit :
<form target="ici" onsubmit="pop();" ... >


Ah oui, c'est exotique comme méthode, mais effectivement...



exotique? c'est ce que j'utilise depuis longtemps



Il est certain que ce n'est pas nouveau nouveau comme méthode :-)

--
ASM
Avatar
ASM
FiLH a écrit :
CrazyCat wrote:
c'est ce que j'utilise depuis longtemps pour l'applet de mon
réseau IRC, à une petite différence près: je ne définis pas la target
dans mon formulaire mais dans le javascript, pour garder la possibilité
d'ouvrir dans la même page (je n'aime pas les fenêtres).





Mis là, avec un form ... le visiteur ne peut décider d'ouvrir dans une
autre fenêtre ou un autre onglet (j'aime beaucoup utiliser les onglets)

Dans la fonction du onsubmit tu positionne target ?




Les solutions sont multiples,
exemple : popup que si JavaScript et que si le visiteur le veut.

function pop(quoi) {
if(confirm('Ouverture dans un popup ?') {
window.open(quoi.action,'',',height`');
return false;
}
return true;
}

<form action="maPage.php" onsubmit="return pop(this);" method="post">


Solutions à la CrazyCat où en absence de JS on ouvre en même fenêtre :

1) Avec un target virtuel en JS :

function pop(quoi) {
quoi.target = 'ici;
window.open('','ici',',height`');
return true;
}

<form action="maPage.php" onsubmit="return pop(this);" method="post">

2) Sans target :

function pop(quoi) {
truc = window.open('','',',height`');
truc.location = quoi.action;
return false;
}

<form action="maPage.php" onsubmit="return pop(this);" method="post">


--
ASM
Avatar
CrazyCat
FiLH a écrit :
Ah oui, c'est exotique comme méthode, mais effectivement...


exotique?


Oui, dans le sens qu'on ouvre une fenêtre au temps 1 pour s'en reservir
ensuite, il y a en fait un total découplage entre les deux.



Non, j'appellerais ça de la logique: pour pouvoir bien transmettre tes
informations à une autre fenêtre, il faut que cette autre fenêtre soit
ouverte, sans quoi tu risques des erreurs.

--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net
Avatar
FiLH
CrazyCat writes:

FiLH a écrit :
>>> Ah oui, c'est exotique comme méthode, mais effectivement...
>> exotique?
> Oui, dans le sens qu'on ouvre une fenêtre au temps 1 pour s'en reservir
> ensuite, il y a en fait un total découplage entre les deux.

Non, j'appellerais ça de la logique: pour pouvoir bien transmettre tes
informations à une autre fenêtre, il faut que cette autre fenêtre soit
ouverte, sans quoi tu risques des erreurs.



Dans ce cas la bonne méthode serait de récupérer le pointeur sur la
fenêtre et de le transmettre via le submit, et non pas un hypothétique
identifiant de fenêtre dont on ne s'assure de l'unicité que parce
qu'on a de la chance...

Sinon, si t'as remarqué dans les autres cas, on ouvre la fenêtre et on
en donne le contenu directement lors de l'ouverture avec l'url.

FiLH


--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
Avatar
FiLH
CrazyCat writes:

FiLH a écrit :
> Dans ce cas la bonne méthode serait de récupérer le pointeur sur la
> fenêtre et de le transmettre via le submit, et non pas un hypothétique
> identifiant de fenêtre dont on ne s'assure de l'unicité que parce
> qu'on a de la chance...
> Sinon, si t'as remarqué dans les autres cas, on ouvre la fenêtre et
> on
> en donne le contenu directement lors de l'ouverture avec l'url.

J'ai bien expliqué (je crois) que mon principe est en fait pour



Oui mais je ne parle pas de ta méthode particulière, plus de l'astuce
qu'il faut utiliser pour obtenir le bon résultat.

FiLH

--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/
1 2