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
Etienne SOBOLE
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.


Idée interessante...

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


newwindow est le retour de la fonction window.open ???
var window.newwindow = window.open('blank.html', ...);
A mon avis cela devrait marcher...

Sinon dans le pire des cas, et ca c'est sur que ca marche...
dans ta popup tu met un timer qui toutes les secondes va lire un champs dans
la fenètre mère...
genre : document.write(window.parent.document.monform.monhidden.value);
et tu ecris dans ton champs hidden...

bon c'est bien sur moins simple que ce que tu voulais faire mais c'est sur
que ca marche.
en tout cas le popup a accès a la fenetre qui l'a ouvert. dans l'autre sens,
je ne sais pas.

Etienne
Etienne

Avatar
pounch
Bon ouvrir la popup n'est plus un probleme ... maintenant, pour detecter
si elle existe ou non, j'ai quelques soucis!

j'ai donc dans un script 'debug.js':
var win = '';

function a() {
if (!win || !win.closed) {
alert('ko');
}
else alert('ok');
}


quoi que je fasse, j'ai toujours 'ko'
... qu'en penser?
Avatar
pounch
j'ai oublié de dire qu'en fait cette popup est appelée par DES pages php.
L'idée etant de créer une popup et d'y ecrire les messages venant des
scripts php ...

donc, logiquement, la popup ne doit pas avoir le meme opener à chaque
fois! mais en plus, comme on change de script php, on renouvelle l'appel
au debug.js ...

reflexion que je viens juste de me faire!!

est-ce que les experts pensent que c'est un probleme? si oui, comment le
contourner? cookies? ou autre?
Avatar
Cenekemoi
Bon ouvrir la popup n'est plus un probleme ... maintenant, pour
detecter si elle existe ou non, j'ai quelques soucis!

j'ai donc dans un script 'debug.js':
var win = '';

function a() {
if (!win || !win.closed) {
alert('ko');
}
else alert('ok');
}


quoi que je fasse, j'ai toujours 'ko'
... qu'en penser?


Change ton test et tout devrait aller mieux :

function a() {
if (!winLog || winLog.closed) {
alert('ko');
}
else alert('ok');
}

D'autre part, pour remplir ta fenêtre, tu peux faire (en simplifié) :

function ajouterLog(log) {
zoneLog = winLog.document.getElementById("log");
zoneLog.innerText += log +"rn";
}

avec dans ta page de log :

<pre>
<div id=log>
</div>
</pre>

--
Cordialement, Thierry ;-)

Avatar
pounch
Change ton test et tout devrait aller mieux :

function a() {
if (!winLog || winLog.closed) {
alert('ko');
}
else alert('ok');
}


oups, ;-)
la belle faute de debutant héhéhé

n'empeche que ça ne fonctionne qd meme pas!

D'autre part, pour remplir ta fenêtre, tu peux faire (en simplifié) :

function ajouterLog(log) {
zoneLog = winLog.document.getElementById("log");
zoneLog.innerText += log +"rn";
}


il ne veut pas ajouter dans le "log" ... tout cela me laisse perplexe!

avec dans ta page de log :

<pre>
<div id=log>
</div>
</pre>

<div>

<div id=log></div>
</div>

ça marche aussi?

Avatar
pounch
pounch wrote:
j'ai oublié de dire qu'en fait cette popup est appelée par DES pages php.
L'idée etant de créer une popup et d'y ecrire les messages venant des
scripts php ...

donc, logiquement, la popup ne doit pas avoir le meme opener à chaque
fois! mais en plus, comme on change de script php, on renouvelle l'appel
au debug.js ...

reflexion que je viens juste de me faire!!

est-ce que les experts pensent que c'est un probleme? si oui, comment le
contourner? cookies? ou autre?
voila le code jscript ... si ça peut aider:


var win = false;
var nbLine = 1;

function DebugPopup(strTxt) {
var w = 300;
var h = 250;
var posx = (screen.width - w) - 10;
var posy = (screen.height - h) - 50;

var options =
'dependent=1,height='+h+',width='+w+',top='+posy+',left='+posx+',scrollbars=true
,resizable=no, status=no';


if (!win || win.closed) {
window.win = window.open('mapage.php','Debugging Frame',options);

if (!win.opener) win.opener = self;
}
else {
this.tmp = win.document.getElementById("scroller").innerHTML += strTxt;
}

if (window.focus) {
win.window.focus();
}
return false;
}

Avatar
Do Re Mi chel La Si Do
Bonjour !

J'ai essayé de faire un truc un peu similaire, pour faire du déboguage de
scripts Python, qui utilisent I.E. avec du javascript comme GUI.

Le problème sur lequel je suis tombé, c'est une histoire de focus (ou
quelque chose de proche). Dans certains cas l'affichage d'information dans
la fenêtre popup fait que, si le curseur reste bien positionné sur un champ
donné (il clignote agréablement...), la saisie est impossible, tant que l'on
ne clique pas, une fois de plus, sur le champ.

Mon problème ne semble pas lié à javascript, car il se produit aussi si je
passe par une seconde instance de I.E., ou si je travaille avec une fenêtre
fournie directement par l'API de Windows.

Par contre, grosse différence, j'adresse I.E. par COM, et je dialogue
directement avec javascript, sans passer par HTTP (c'est pour un usage
local, et c'est beaucoup plus souple et rapide, mais non portable).


Conclusion : tes messages, et leurs réponses, m'intéressent.

@-salutations
--
Michel Claveau
Avatar
ASM

pounch wrote:
j'ai oublié de dire qu'en fait cette popup est appelée par DES pages php.
L'idée etant de créer une popup et d'y ecrire les messages venant des
scripts php ...

donc, logiquement, la popup ne doit pas avoir le meme opener à chaque
fois!



Si ! l'opener reste l'opener
l'opener EST LA FENETRE et non pas le document y affiché

Je ferais pour une fonction dans la page de fenetre appelante :

var winúlse;
var temp='';
function DebugPopup(strTxt) {
var w = 300;
var h = 250;
var posx = (screen.width - w) - 10;
var posy = (screen.height - h) - 50;

var options =
'dependent=1,height='+h+',width='+w+',top='+posy+',left='+posx+',scrollbars=true
,resizable=no, status=no';

if (!win || win.closed) {
win = window.open('','',options);
}
temp += strTxt;
with(win.document) {
open():
write('<pre>'+temp+'<'+'/pre>');
close();
}
if (self.focus) {
win.focus();
}
return false;
}


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


Avatar
ASM

function a() {
if (!winLog || winLog.closed) {
alert('ko');
}
else alert('ok');
}


n'empeche que ça ne fonctionne qd meme pas!


? ce devrait si ...
avant déclarion fonction a()
on a :
var winlog = false;

<div>
<div id=log></div>
</div>

ça marche aussi?


autant n'avoir que

<div id=log></div>

mais alors :

function ajouterLog(log) {
zoneLog = winLog.document.getElementById("log");
zoneLog.innerText += log +"<br>rn";
}

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


Avatar
ASM

Bonjour !

J'ai essayé de faire un truc un peu similaire, pour faire du déboguage de
scripts Python, qui utilisent I.E. avec du javascript comme GUI.

Le problème sur lequel je suis tombé, c'est une histoire de focus (ou
quelque chose de proche). Dans certains cas l'affichage d'information dans
la fenêtre popup fait que, si le curseur reste bien positionné sur un champ
donné (il clignote agréablement...), la saisie est impossible, tant que l'on
ne clique pas, une fois de plus, sur le champ.


dans le popup

<body onkeydown="opener.focus();" onclick="opener.focus();">

n'aiderait pas ?



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

1 2 3 4 5