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 11: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 13:24

Winkiller,

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

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

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

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

Winkiller 11.03.2008 19:36

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

Андрей Параничев 11.03.2008 20: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 16:40

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

Андрей Параничев 15.03.2008 00:31

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

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

Kolyaj 15.03.2008 00:38

Цитата:

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

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

Андрей Параничев 15.03.2008 00:47

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

Winkiller 24.03.2008 10:09

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

PavluxaFSB 06.05.2009 21:10

Пожалуйста помогите
 
Есть таймер обратного отсчета:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тест</title>
<script type="text/javascript">
<!--
var newYear = new Date().getTime()+111000;
function newYearIn()
{
var now = new Date();
var totalRemains = (newYear-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+Remains FullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinu tes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
var mcend = Date.parse("Jan 1, 2010, 00:00:00");
var mcnow = now.getTime();
var mc = ((mcend-mcnow)/10).toFixed(0).substr(8);
document.getElementById('newyear').innerHTML = "Время на ответ: "+RemainsFullDays+" дней "+RemainsFullHours+":"+RemainsMinutes+":"+lastSec+ "."+mc;
setTimeout("newYearIn()",10);
}
else
{
document.form1.submit();
}
}
//-->
</script>
</head>
<body onload="newYearIn();">
<form id="form1" name="form1" method="post" action="http://10.0.0.2/cgi-bin/TestServer3.exe">
<input type="submit" name="buttonE" id="buttonE" value="CC" />
</form>
<span id="newyear"></span>
</body></html>

как выводить время не в таге span, а например через input type="text"


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