wo****@gmail.com napisał(a):
Mam funkcję którą wywołuję w
<form ... onSubmit="submit_f()">
a funkcja wygląda tak:
<script>
function submit_f(){
window.opener.location.reload();
setTimeout("window.close();",3000);
}
</script>
Całość odbywa się w popupie i ma polegać na tym, że po
przetworzeniu formularza ma to zostać przeładowana strona z której
otwarłem popupa i po 3 sekundach zamknięty popup (jeśli daję bez
opóźnienia to czasami nie przetworzy formularza). Niestety nie
działa ten setTimeout i nie zamyka strony. Jak dam alert('ble'); po
setTimeout to wyswietl alerta i zamknie popup. Co to może być?
Jednym z rozwiązań (ale bardzo kiepskim bo będzie ono zrzerało czas
proca), jest takie:
plik main.html
--------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
<script type="text/javascript">
var globalRef;
document.write(Math.random(500));
</script>
<br>
<a href="#" onclick="globalRef = window.open('popup.html');">Otwórz
popup</a>
</body>
</html>
plik popup.html
----------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
</head>
<body>
<script type="text/javascript">
function submit_f() {
var fromT = (new Date()).getTime();
for (var i = 0; i < 3000; i = (new Date()).getTime() - fromT)
{
// tutaj niestety jest zabierany czas procesora...
}
window.location.reload();
window.close();
}
</script>
<form name="myForm" onsubmit="submit_f()">
<input type="submit" value="Przeładuj stronę...">
</form>
</body>
</html>
Pozdrawiam i mam nadzieję że to pomogło.
Łukasz Matuszewski