Når jeg gør dette, får jeg aldrig de alerts, der er inde i min setTimeout, og funtionerne bliver så self. heller ikke kørt.
Og det ændrer ikke noget, om der er window.close i eller ej, for jeg har også prøvet det sådan her:
function submitEditSignal() { document.forms[0].submit(); callOpenerPreviousInfoList(); setTimeout(function() { alert("1000 ms later!"); }, 1000); } Det giver heller ikke nogen alert...?
Er der ikke en javascript-haj derude, der ved, hvad jeg gør galt? :P }
function submitEditSignal() { document.forms[0].submit(); callOpenerPreviousInfoList(); window.close(); }
Men problemet ved den er, at popup'ens opener window reloader for hurtigt på denne måde. Ændringerne der sker ved submit skal også lige nå at træde i kraft i databasen, så hvis jeg bare reloader vinduet med det samme, får jeg ikke ændringerne med.
Er der evt. en anden metode, jeg kan bruge til at få opener window'et til at vente lidt (eks. 1000 ms) med at reloade?
function submitEditSignal() { document.forms[0].submit(); sleep(2500); callOpenerPreviousInfoList(); window.close(); } function sleep(delay) { var start = new Date().getTime(); while (new Date().getTime() < start + delay); }
Nu kender jeg jo ikke sammenhængen, men, var det en mulighed at sludre lidt med brugeren mens data falder på plads ?
function submitEditSignal() { document.forms[0].submit(); alert("Klokken er mange, men dit signal er modtaget"); callOpenerPreviousInfoList(); window.close(); }
Alternativt: Flyt kaldet til callOpenerPreviousInfoList() til responset fra den submittede form... Bonus: Hvis der sku' gå noget galt efter sumbit fra popup'en som det er nu, vil brugeren aldrig se det, da vinduet forlængst er lukket..) - den situation vil du kunne fange hvis du venter på response får du farer videre.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.