OVH Cloud OVH Cloud

POPUP

42 réponses
Avatar
pounch
Bonjour,

Je cherche à créer un systeme de debugging dans une fenetre à part.
Donc, dans ma webapp, si le debugging est ON, une popup s'ouvre et
affiche les messages de debugging qu'on lui passe.

Donc l'idée est de vérifier si la popup existe
si oui, on lui passe le texte à afficher
si non, on la crée et on lui passe le texte à afficher.

Simple, non?

Mais, est-ce que je DOIS obligatoirement passer une url?
comment faire pour ecrire dans cette popup? newwindow.document.write()
ne va pas!

Quelles pistes dois-je suivre?
Merci,
Dams

10 réponses

1 2 3 4 5
Avatar
ASM

Euh, je vais dire une bétise (peut-être) mais :

window.open('...','bidule','...)


à mon idée :
ce target ne fonctionne que sur les liens

<a href="apge.htm" target="bidule">

le js "location" a besoin de connaitre le nom du popup

popup.location = 'agpe.htm'

et je suppose que :
popup.bidule.location = 'agpe.htm'
fonctionne aussi

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************

Avatar
loiseauthierry
ASM wrote:

à mon idée :
ce target ne fonctionne que sur les liens


Non... A tester pour vérifier :

<http://astrophoto.free.fr/usenet/testpopup.html>

Chez moi, ça roule depuis MacOS X et Firefox, et IE 5.2

;-)
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?

Avatar
ASM

ASM wrote:

à mon idée :
ce target ne fonctionne que sur les liens


Non... A tester pour vérifier :


j'y suis allé

<http://astrophoto.free.fr/usenet/testpopup.html>


je n'ai pas cliqué

Chez moi, ça roule depuis MacOS X et Firefox, et IE 5.2


et je dis :

"Qu'est-ce que tu me patafioles là Thierry ? "

et re-précise : target !

un window.open() obligé que ça s'ouvre en blank ...
pas besoin ni de nom (asm) ni de target (asm) dans l'open

ton truc, pour utiliser son target, eût plutôt dû avoir été :

<a href="une_page.htm" target="asm"
onclick="window.open('','asm','width0, height0');
asm.focus();">


--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************


Avatar
ASM

Bonsoir !


Bonjour,

Résultat des courses : le problème a l'air d'être réglé.


tant mieux, car je suis paumé.
de quoi qu'on cause ?

tu parles du gadget onkeydown dans body d'un popup ?
çà marche ?

Mais j'en ai deux nouveaux :
- L'évènement focus est déclenché une fois de plus (évidement, mais ça
ne m'arrange pas ; toutefois, avec un flag, je vais pouvoir le gérer).
- L'empilement des fenêtres (ordre d'affichage) n'est plus bon.


Ah ? oui ? et ?
faut les numéroter et faire une boucle dessus pour les re-ranger
Bien que je ne comprenne pas ... ?
1) comment se fait-il que le pop-debugueur arrive pendant
que tu tapes dans un champ de saisie ?
Tu as dû en sortir pour l'activer. Non?
2) si c'est un popup automatique dès que keydown dans champ
Peut-être faut-il que ce soit le champ de saisie qui commande
le focus à avoir et à garder ?

Néanmoins, je dois pouvoir faire quelque chose, avec cette piste.


Page fenêtre principale
<input type="text" id="chp_10"
onkeydown="chamFocus=this.id" onkeyup="debug();">
<input type="text" id="chp_11"
onkeydown="chamFocus=this.id" onkeyup="debug();">
ou :
<input type="text" id="chp_11" onkeyup="debug(this.id);">
et debug passe l'id à chamFocus

Page du popup
<body onkeydown="with(opener){
focus();
document.getElementById(opener.champFocus).focus();
}">

mais ...
reste peut-être à remettre le pointeur à sa place ?


--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************

Avatar
Do Re Mi chel La Si Do
Bonjour !

Ne t'affoles pas ! Je ne tiens pas à ce que tu ais une crise cardiaque.

En fait, ce qui marche, c'est le "opener.focus()". Je suis nul de ne pas y
avoir pensé. Après tu que ais indiqué le truc, ça m'a semblé évident.

Le choix des évènements qui le déclenchent n'est plus qu'un détail.
Finalement, je l'ai associé à la fermeture du popup du débogueur.

Sinon, tu as bien compris que le débogueur se déclenchait n'importe quand.
Comme il peut aussi déboguer des fonctions multi-taches, cela peut être
vraiment n'importe quand.

Bonne journée
--
Michel Claveau
Avatar
loiseauthierry
ASM wrote:

<http://astrophoto.free.fr/usenet/testpopup.html>


je n'ai pas cliqué


Pourquoi ?

:-/

Chez moi, ça roule depuis MacOS X et Firefox, et IE 5.2


et je dis :

"Qu'est-ce que tu me patafioles là Thierry ? "

et re-précise : target !


<http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/windows.htm#
996824>

"
You can create a window with the open method. The following statement
creates a window called msgWindow that displays the contents of the file
sesame.html:

msgWindow=window.open("sesame.html")
The following statement creates a window called homeWindow that displays
the Netscape home page:

homeWindow=window.open("http://home.netscape.com")

For more information on window names, see "Referring to windows and
frames".
Windows can have two names. The following statement creates a window
with two names. The first name, msgWindow, refers to the window's
properties, methods, and containership; the second name, displayWindow,
refers to the window as the target of a form submit or hypertext link.

msgWindow=window.open("sesame.html","displayWindow")
"

Ici, il est bien précisé que "displayWindow" est "as the target".

Cela conforte ma position. Toc !

;-))))


Avatar
loiseauthierry
Thierry Loiseau wrote:

Ici, il est bien précisé que "displayWindow" est "as the target".

Cela conforte ma position. Toc !


Tiens, au hasard, une discussion en l'an 2000 sur fciwa :

<http://groups.google.fr/groups?hl=fr&lr=&threadm:457cb3.3856284%40New
s.CIS.DFN.DE&rnum=2&prev=/groups%3Fhl%3Dfr%26lr%3D%26q%3Djavascript%2Bta
rget%26btnG%3DRechercher%26meta%3Dgroup%253Dfr.comp.infosystemes.www.aut
eurs.*>

"
Le code javascript "windoow.open" permet de spécifier le 'target' et les
propriétés de la fenêtre.
"

Thierry
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?

Avatar
loiseauthierry
ASM wrote:

<a href="une_page.htm" target="asm"
onclick="window.open('','asm','width0, height0');
asm.focus();">


<a href="une_page.htm" target="asm"
onclick="asm=window.open(this.href, this.target,'width0,
height0'); asm.focus();">

Mieux, non ?

:-/
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?

Avatar
ASM

ASM wrote:

"Qu'est-ce que tu me patafioles là Thierry ? "

et re-précise : target !


<http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/windows.htm#
996824>
[couic]

msgWindow=window.open("sesame.html","displayWindow")

Ici, il est bien précisé que "displayWindow" est "as the target".


Ils peuvent se displayer les côtes autant qu'ils veulent
même s'il n'y a pas de target (ni de nom) dans cet exemple
le résultat sera kif kif (on suppose le JS activé)
si on stipule dans la fonction le nom du fichier à charger

onclick="window.open('page.htm');"
ouvre la page en blank de toutes façons puisque çà sert à ça !
et ta démo ne montre rien d'autre
(sauf à donner le focus à un objet qui l'a déjà).

Cela conforte ma position. Toc !


;-))

Qu'est-ce que tu me repatafioles Thierry ? :-)

à faire répéter par la doc netscape ce que j'ai dit ?

Moi ce dont je parle c'est du target
le target ! le target ! le target ! le target !

Allez je complète et traduit la doc citée :

msgWindow = le nom de la fenêtre
displayWindow = le nom de la cible (de la fenêtre)

s'emploient comme suit :

1) on vise la cible (target) (target name)

<a href="page.htm" target="truc"
onclick="toctoc=window.open('','truc','');">
ou :
<form target="truc" action="page.htm" method="get"
onsubmit="toctoc=window.open('','truc','');">

2) on vise la fenêtre (window) (window name)
et on supose le JS actif

<a href="#" onclick="toctoc=window.open('','truc','');
toctoc.location.href='page.htm';
return false;">
ou :
<form action="page.htm" method="get"
onsubmit="toctoc=window.open('','','');
toctoc.location.href=this.action;
return false;">

Après on peut jouer à toutes les variantes que l'on veut
(il est prudent de ne pas donner le même nom à la fenetre et à la cible)
(ainsi on se mélange moins les pinceaux, et aide le navigateur)
- le html vise le target
- le JS s'adresse à la fenêtre
A noter : le JS ne connait pas la cible même si on fait :
toctoc.truc.location
Bon ! netscape nous emberlificote en charabiotant que la fenêtre
a deux noms.
Sont loin d'être didactiques à prendre le pb à l'envers.
Non ! on s'adresse à 2 entités (1 pour JS, 1 pour HTML)
chacune peut porter un nom
(ce qui nous fait 2 noms pour ce qui nous apparait comme le mm objet)

Le mieux pour compatiblité sans JS étant :

<a href="page.htm" target="truc" onclick="toctoc=window.open('','truc','');
toctoc.location.href=this.href;
return false;">

Qui peut (touj compatible !JS avec ouverture en blank) se résumer en :

<a href="page.htm" target="truc" onclick="window.open('','truc','');">

Et, comme on n'a pas profité des options gérant la fenêtre,
se traduit par :

<a href="page.htm" target="_blank">

ou
si on a prévu dans le head : <base target="_blank">

<a href="page.htm">

;-)


cordialement

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************


Avatar
ASM

ASM wrote:

<a href="une_page.htm" target="asm"
onclick="window.open('','asm','width0, height0');
asm.focus();">


<a href="une_page.htm" target="asm"
onclick="asm=window.open(this.href, this.target,'width0,
height0'); asm.focus();">

Mieux, non ?


ch'sais pô ?

je te conseille de tester avec IE ... ;-))

si c'est bon,
c'est que le petit oubli n'est pas grâve

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
*******************************************************


1 2 3 4 5