11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je suis en train de retoucher un intranet (donc impossible de mettre en ligne...).

Sur ma page formulaire de "gestion de document", j'ai un bouton qui va permettre à l'utilisateur de sélectionner un "template"...
Cette partie a été écrite par l'éditeur sous forme d'une fenêtre Popup :

function DoTemplate() {
	var wnd = window.open(URL, WindowName, Params);
	if (wnd)
		wnd.focus();


On s'est rendu compte qu'il manquait un "submit" Smiley ohwell pour sauvegarder les dernières modifications des utilisateurs...

J'ai donc rajouté un
document.forms[0].submit()
juste avant l'ouverture de la popup, mais du coup, celle-ci passe à l'arrière plan, et donc est masquée à l'utilisateur Smiley bawling

N'étant pas expert en JS, et après quelques recherches sur le Web, j'ai trouvé quelques solutions à base de
 setTimeout("DoTemplate()", 300); 

dans l'idée de déclencher l'ouverture de la Popup après le retour du rafraichissement de la page provoquée par le submit()...

Le hic:
* en débug (F12 avec IE 9), ça marche nickel
* en "live", ça marche de façon aléatoire:
- avec un délais de 300 ms ou moins, j'ai toujours la popup qui repasse derrière
- avec un délais supérieur, l'appel de la fonction en paramètre du setTimeout() ne se fait pas

Quelqu'un aurait-il une idée pour gérer cet appel de popup ?
Hello,

Je vois deux solutions à ton problème :
- faire une soumission du formulaire en AJAX de manière à rester sur la page courante.
- afficher la popup une fois la page soumise, donc appel de celle-ci depuis la page suivante. Tu peux éventuellement utiliser un paramètre dans l'url s'il s'agit de la même page.
Merci pour cette réponse rapide.

- la mise à jour Ajax: ce n'est pas faisable, car il y a des zones modifiées sur le serveur, par du code sur lequel je n'ai pas accès, et qui peuvent éventueellement impacter la Popup

- et pour l'URL, je crains avoir le même blocage...

J'avais déjà exploré la solution de la variable globale, mais avec le submit(), à priori, tout est effacé...

J'ai également tenter de forcer le focus à partir de la popup ouverte, pour l'obliger à se remettre devant, mais pareil...