Я не знаю много о JavaScript, вот код, который у меня есть:
<script language="JavaScript">
var x = 10
function startClock() {
if (x !== ' ') {
x = x - 1
document.frm.clock.value = x
setTimeout("startClock()", 1000)
}
if (x == 0) {
x = ' ';
document.frm.clock.value = x;
success.location.href = "success.php";
}
}
</script>
<body onLoad(startClock);>
затронутый iframe:
<input name="clock" size="3" readonly="readonly"
<iframe name="success" src="blank.htm"></iframe>
при отсчете таймера, success.php загружается дважды. Я знаю это, потому что 1.) Он дважды вставляет данные в мою БД, 2.) Я действительно вижу символ загрузки во вкладке, перезагружая секунду.
Когда я изменяю функцию на что-то вроде:
<script language="JavaScript">
var x = 10
var y = 1
function startClock() {
if (x !== 'Fin') {
x = x - y
document.frm.clock.value = x
setTimeout("startClock()", 1000)
}
if (x == 0) {
x = 'Fin';
document.frm.clock.value = x;
success.location.href = "success.php";
}
}
</script>
... страница загружается только один раз.
Может кто-нибудь сказать мне, что здесь происходит? Я также попытался использовать '0' вместо '' и получил такое же двойное исполнение ...