Автоматическое открытие страницы по таймеру
|
|
|
2015-03-05Дата: Четверг, 05.03.2015, 07:57 | Сообщение # 1 |
Лейтенант
Группа: Проверенные
Статус: Offline
|
Возникла необходимость написать скрипт, который через определенное время (например 30 минут) закроет активную страницу и вместо нее откроет другую страницу. Нашел вот такой скрипт: Код <script type="text/javascript"> function openNewTab(){ window.open('http://www.ya.ru', '_self'); } setTimeout("openNewTab()", 1000); </script> вставил этот скрипт в активную страницу, но ничего не происходит. Скрипт не пашет Почему? В чем ошибка?Добавлено (05.03.2015, 07:53) --------------------------------------------- Понял свою ошибку сам ) Код <script type="text/javascript"> function openNewTab(){ window.open('http://www.ya.ru', '_self'); } window.setTimeout("openNewTab()", 30*60*1000); </script> Добавлено (05.03.2015, 07:57) --------------------------------------------- Остался один вопрос, как на экран активной страницы вывести красивый таймер-часы, отсчета времени до закрытия страницы. Может у кого-то есть мысли на этот счет.
| | |
|
|
2015-03-05Дата: Четверг, 05.03.2015, 08:22 | Сообщение # 2 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
RedStar, Возникла необходимость написать скрипт С этим сюда: http://likbezz.ru/forum/102
Скрипт не пашет sad Почему? В чем ошибка? Скрипт работает, ошибок нет.
Понял свою ошибку сам ) Код <script type="text/javascript"> function openNewTab(){ window.open('http://www.ya.ru', '_self'); } window.setTimeout("openNewTab()", 30*60*1000); window указывать необязательно - является по умолчанию, время тайм-аута выполнения функции задается в милисекундах.
ps Скрипт избыточен, пишут проще: Код setTimeout(function(){window.open('http://www.ya.ru', '_self');},10000); - через 10 секунд откроется яндекс
| | |
|
|
2015-03-05Дата: Четверг, 05.03.2015, 08:37 | Сообщение # 3 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
Остался один вопрос, как на экран активной страницы вывести красивый таймер-часы, отсчета времени до закрытия страницы. Может у кого-то есть мысли на этот счет. А где страница закрывается? Обычный таймер, через обычный тайм-аут == 1 секунде от нужного числа до нуля. Типа: Код <div id="timer_id">10</div> <script type="text/javascript"> function timer(){ var obj=document.getElementById('timer_id'); obj.innerHTML--; if(obj.innerHTML==0){ alert('Готово!'); }else{ setTimeout(function(){timer();},1000); }; };timer(); </script> или так, более “красиво”: Код <div id="timer_id">10</div> <script type="text/javascript"> function timer(){ var obj=document.getElementById('timer_id'); if(obj.innerHTML==0){ alert('Готово!'); }else{ setTimeout(function(){obj.innerHTML--;timer();},1000); }; };timer(); </script>
| | |
|
|
2015-03-05Дата: Четверг, 05.03.2015, 11:26 | Сообщение # 4 |
Лейтенант
Группа: Проверенные
Статус: Offline
|
window указывать необязательно Без window скрипт не хотел работать. Вставил window скрипт заработал.
Код <div id="timer_id">10</div> <script type="text/javascript"> function timer(){ var obj=document.getElementById('timer_id'); if(obj.innerHTML==0){ alert('Готово!'); }else{ setTimeout(function(){obj.innerHTML--;timer();},1000); }; };timer(); </script> Этот скрипт выводит отсчет в секундах например 10. А мне нужно такой вид ММ:СС на пример 30:00
Добавлено (05.03.2015, 11:15) --------------------------------------------- Вот нашел красивый скрипт таймера отсчета: Код <script src="http://e-timer.ru/js/etimer.js"></script> <script type="text/javascript"> jQuery(document).ready(function() { jQuery(".eTimer").eTimer({ etType: 1, etDate: "06.03.2015.0.0", etTitleText: "До окончания теста осталось:", etTitleSize: 19, etShowSign: 1, etSep: ":", etFontFamily: "Trebuchet MS", etTextColor: "#a3a3a3", etPaddingTB: 15, etPaddingLR: 15, etBackground: "#333333", etBorderSize: 0, etBorderRadius: 2, etBorderColor: "white", etShadow: " 0px 0px 10px 0px #333333", etLastUnit: 4, etNumberFontFamily: "Impact", etNumberSize: 35, etNumberColor: "white", etNumberPaddingTB: 0, etNumberPaddingLR: 8, etNumberBackground: "#11abb0", etNumberBorderSize: 0, etNumberBorderRadius: 5, etNumberBorderColor: "white", etNumberShadow: "inset 0px 0px 10px 0px rgba(0, 0, 0, 0.5)" }); }); </script> <div class="eTimer"></div> Но как в него воткнуть отсчет 30 минут? Что бы он имел вид 00 дней, 00 часов, 30 минут, 00 секунд. Т.е. вел отсчет 30 минут от начала открытия текущей страницы (или отсчет запуска таймера установленного на 30 минут).
Добавлено (05.03.2015, 11:26) --------------------------------------------- Я так понимаю что при открытии страницы надо получить текущую дату и время прописать в переменную etDate и к этой переменной прибавить 30 минут, тем самым получить конечную дату окончания работы данного скрипта. Как это реализовать на практике?
Сообщение отредактировал RedStar - Четверг, 05.03.2015, 11:29 | | |
|
|
2015-03-05Дата: Четверг, 05.03.2015, 14:19 | Сообщение # 5 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
RedStar, А мне нужно такой вид ММ:СС на пример 30:00 Усложнить немного - добавить минуты и привести числа в двузначные, типа:
Вот нашел красивый скрипт таймера отсчета: Но как в него воткнуть отсчет 30 минут? Наверняка, как-то можно, если ознакомиться с документацией. На крайняк уж - скрыть лишнее стилями.. Код .etDays,.etHours{display: none;} А еще можно написать автору скрипта что бы ввел еще и переменную вида/формата отображения..
- а то как-то нелогично смотрится приблизительная дата высадки человека на марсе...
ps Ради таймера подлючать тяжеленный плагин - верх расточительства .. со стороны разработчика, естественно..
| | |
|
|
2015-03-05Дата: Четверг, 05.03.2015, 15:12 | Сообщение # 6 |
Лейтенант
Группа: Проверенные
Статус: Offline
|
ps Ради таймера подлючать тяжеленный плагин - верх расточительства .. со стороны разработчика, естественно..
Полностью согласен с Вами. Сейчас пытаюсь переписать скрипт, потом выложу на Ваше обсуждение. Может подправите мои мелкие ошибки. Я ведь не супер профи в написании скриптов, пишу скрипты как умею.
| | |
|
|
2015-03-05Дата: Четверг, 05.03.2015, 15:46 | Сообщение # 7 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
RedStar, Аналогично ) Удачи вам, думаю все получится ) - ломать не стоить - в смысле - удалять не добавлять ))
| | |
|
|
2015-03-05Дата: Четверг, 05.03.2015, 16:07 | Сообщение # 8 |
Лейтенант
Группа: Проверенные
Статус: Offline
|
Вот, что получилось:
В CSS: Код /* ----------------- */ .po { margin:18px 10px 10px 76px; float:left; color:#ffffff; font-size:3em; font-weight:bold; }
.pb { border:1px solid white; -moz-border-radius:10px; height:65px; width:340px; background:url(http://instudio.at.ua/img/clock.jpg) left top no-repeat; } /* ----------------- */
В HTML: Код <script type="text/javascript"> function openNewTab(){ window.open('http://www.ya.ru', '_self'); alert('Время отведенное на тест вышло!'); } function start_timer() { var block = document.getElementById('sample_timer'); simple_timer(0, block, true); } function start_countdown() { var block = document.getElementById('sample_countdown'); simple_timer(120, block); } // Поставил для пробы 2 минуты function simple_timer(sec, block, direction) { var time = sec; direction = direction || false; var hour = parseInt(time / 3600); if ( hour < 1 ) hour = 0; time = parseInt(time - hour * 3600); if ( hour < 10 ) hour = '0'+hour; var minutes = parseInt(time / 60); if ( minutes < 1 ) minutes = 0; time = parseInt(time - minutes * 60); if ( minutes < 10 ) minutes = '0'+minutes; var seconds = time; if ( seconds < 10 ) seconds = '0'+seconds; block.innerHTML = hour+':'+minutes+':'+seconds; if ( direction ) { sec++; setTimeout(function(){ simple_timer(sec, block, direction); }, 1000); } else { sec--; if ( sec >= 0 ) { setTimeout(function(){ simple_timer(sec, block, direction); }, 1000); } else { openNewTab(); } } }
</script>
<div align="center"> <div class="timer_sample"> <div class="pb"> <div id="sample_countdown" class="po"></div> <script> start_countdown(); </script> </div> </div> </div>
Может будут, какие советы? Ну и может быть кому-то из пользователей Вашего сайта этот скрипт таймера пригодится.
Сообщение отредактировал RedStar - Четверг, 05.03.2015, 16:13 | | |
|