Таймер в цикле
Всем доброго времени суток! Помогите пожалуйста доделать скрипт:
<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 секунд! Заранее благодарен за любые варианты! |
Winkiller,
- заведите счетчик открытий окна (именно открытий окна, а не смены location'a), - проверяйте этот счетчик в функции, запущенной в setInterval'e (setInterval(function() { if (counter < 10) { запуск } else {очистка интервала} }, 5000)) |
А этот скрипт будет находится непосредственно на ro.ru? Т.е будет открывать сам себя? Если нет, то тут надо запускать и обновлять фрейм, а не сам document.location, так как в последнем случае перезапускается страница, содержащая сам скрипт перезапуска, т.е получается бесконечная рекурсия. И открыть надо 10 копий, или 10 раз подряд? Может вам больше подойдет открытие 10 новых окон с ro.ru?
|
В общем этот скрипт будет использоваться для отмечания статистики. На работе нужно после того как позвонит клиент отмечать проблему обращения по определенной ссылке. Так вот, если открывать эту ссылку сразу несколько раз подряд, то она не отмечается. Поэтому необходима это делать к примеру через 5 сек. Открывать нужно определенное количество раз подряд, в зависимости от того сколько клиентов позвонит. Спасибо Вам огромное!
|
Если я правильно понял вашу проблему, то вот скрипт, который открывает страницы в новом окне через определённый интервал. Вам нужно их автоматически закрыть, после открытия?
<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> |
Спасибо огромное, Андрей! Лучше просто нельзя было сделать =) Все прям как я хотел...Очень тебе благодарен! Успехов тебе в этом нелегком деле! И всем остальным тоже большой респект!
P/s: какие книжки стоит прочитать про javascript? А еще вот, просто, на всякий случай...Как сделать, чтобы как только страничка открылась, сразу закрывалась??? |
Хм... Странно, щас посмотрел, попробовал повесить на событие загрузки окна его закрытие, но не сработало. Может чуть позже пойму где ошибаюсь и отпишу :)
А насчет литературы, к сожалению не могу ничего сказать, так как сам изучаю javascript по примерам и статьям. |
Цитата:
|
Весьма вероятно... :)
|
Андрей, привет! ты не нашел решение?
|
Пожалуйста помогите
Есть таймер обратного отсчета:
<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, время: 23:00. |