Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таймер в цикле (https://javascript.ru/forum/misc/1082-tajjmer-v-cikle.html)

Winkiller 11.03.2008 10:35

Таймер в цикле
 
Всем доброго времени суток! Помогите пожалуйста доделать скрипт:
<script language="JavaScript" type="text/javascript">
function goURL() {
for (i=1; i<10 ; i++)
{
location.href="http://www.ro.ru"
}
}
</script>
<body onLoad="setTimeout('goURL()', 1000);">

В данном случае необходима, чтобы страничка ro.ru открывалась 10 раз через 5 секунд! Заранее благодарен за любые варианты!

Dmitry A. Soshnikov 11.03.2008 12:24

Winkiller,

- заведите счетчик открытий окна (именно открытий окна, а не смены location'a),

- проверяйте этот счетчик в функции, запущенной в setInterval'e (setInterval(function() { if (counter < 10) { запуск } else {очистка интервала} }, 5000))

Андрей Параничев 11.03.2008 15:29

А этот скрипт будет находится непосредственно на ro.ru? Т.е будет открывать сам себя? Если нет, то тут надо запускать и обновлять фрейм, а не сам document.location, так как в последнем случае перезапускается страница, содержащая сам скрипт перезапуска, т.е получается бесконечная рекурсия. И открыть надо 10 копий, или 10 раз подряд? Может вам больше подойдет открытие 10 новых окон с ro.ru?

Winkiller 11.03.2008 18:36

В общем этот скрипт будет использоваться для отмечания статистики. На работе нужно после того как позвонит клиент отмечать проблему обращения по определенной ссылке. Так вот, если открывать эту ссылку сразу несколько раз подряд, то она не отмечается. Поэтому необходима это делать к примеру через 5 сек. Открывать нужно определенное количество раз подряд, в зависимости от того сколько клиентов позвонит. Спасибо Вам огромное!

Андрей Параничев 11.03.2008 19:29

Если я правильно понял вашу проблему, то вот скрипт, который открывает страницы в новом окне через определённый интервал. Вам нужно их автоматически закрыть, после открытия?

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script>
function openWindows(myForm)
{
	count = 0;
	interval = setInterval(function() {
		if(count < myForm.openTimes.value) {
			window.open(myForm.openPage.value);
			count++;
		} else {
			clearInterval(interval);
		}
	}, myForm.openInterval.value);
	
	return false;
}
</script>
</head>
<body>
	<form onSubmit="return openWindows(this)">
		Открываемая страница: <input name="openPage" type="text" value="your_site.ru"  />    <hr />
		Количество страниц:   <input name="openTimes" type="text" value="5"  />      <hr />
		Интервал:             <input name="openInterval" type="text" value="1000"  /> мс <hr />
		<input type="submit" value="< Открыть >" />
	</form>
</body>

Winkiller 12.03.2008 15:40

Спасибо огромное, Андрей! Лучше просто нельзя было сделать =) Все прям как я хотел...Очень тебе благодарен! Успехов тебе в этом нелегком деле! И всем остальным тоже большой респект!
P/s: какие книжки стоит прочитать про javascript?
А еще вот, просто, на всякий случай...Как сделать, чтобы как только страничка открылась, сразу закрывалась???

Андрей Параничев 14.03.2008 23:31

Хм... Странно, щас посмотрел, попробовал повесить на событие загрузки окна его закрытие, но не сработало. Может чуть позже пойму где ошибаюсь и отпишу :)

А насчет литературы, к сожалению не могу ничего сказать, так как сам изучаю javascript по примерам и статьям.

Kolyaj 14.03.2008 23:38

Цитата:

Сообщение от Андрей Параничев
Хм... Странно, щас посмотрел, попробовал повесить на событие загрузки окна его закрытие, но не сработало. Может чуть позже пойму где ошибаюсь и отпишу

Наверно, потому что домены разные.

Андрей Параничев 14.03.2008 23:47

Весьма вероятно... :)

Winkiller 24.03.2008 09:09

Андрей, привет! ты не нашел решение?


Часовой пояс GMT +3, время: 13:36.