Автоматическое открытие страницы по таймеру - Скрипты и коды для юкоз - Форум аццкого кодера
Фильтр по:
  

Страница 1 из 11
Модератор форума: likbezz 
Скрипты и коды для юкоз - Форум аццкого кодера » Раздел для начинающих » Как сделать так, чтобы... » Автоматическое открытие страницы по таймеру
Автоматическое открытие страницы по таймеру
Дата: Четверг, 05.03.2015, 07:57 |
RedStar
Лейтенант
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 6
Статус: Offline


Возникла необходимость написать скрипт, который через определенное время (например 30 минут) закроет активную страницу и вместо нее откроет другую страницу.
Нашел вот такой скрипт:
Код

  <script type="text/javascript">
   
    function openNewTab(){
     window.open('http://www.ya.ru', '_self');
    }
   
    setTimeout("openNewTab()", 1000);
   
</script>

вставил этот скрипт в активную страницу, но ничего не происходит.
Скрипт не пашет sad
Почему? В чем ошибка?

Добавлено (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)
---------------------------------------------
Остался один вопрос, как на экран активной страницы вывести красивый таймер-часы, отсчета времени до закрытия страницы.
Может у кого-то есть мысли на этот счет.

 
Дата: Четверг, 05.03.2015, 08:22 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


RedStar,
Цитата RedStar, Чт, 05.03.2015, 07:53:35
Возникла необходимость написать скрипт

С этим сюда: http://likbezz.ru/forum/102

Цитата RedStar, Чт, 05.03.2015, 07:53:35
Скрипт не пашет sad
Почему? В чем ошибка?

Скрипт работает, ошибок нет.

Цитата RedStar, Чт, 05.03.2015, 07:53:35
Понял свою ошибку сам )
Код
<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 секунд откроется яндекс


 
Дата: Четверг, 05.03.2015, 08:37 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


Цитата RedStar, Чт, 05.03.2015, 07:57:32
Остался один вопрос, как на экран активной страницы вывести красивый таймер-часы, отсчета времени до закрытия страницы.
Может у кого-то есть мысли на этот счет.

А где страница закрывается?
Обычный таймер, через обычный тайм-аут == 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>

Прикрепления: timer_id.html(1Kb)

 
Дата: Четверг, 05.03.2015, 11:26 |
RedStar
Лейтенант
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 6
Статус: Offline


Цитата likbezz, Чт, 05.03.2015, 07:22:26
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
 
Дата: Четверг, 05.03.2015, 14:19 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


RedStar,
Цитата RedStar, Чт, 05.03.2015, 11:26:42
А мне нужно такой вид ММ:СС на пример 30:00

Усложнить немного - добавить минуты и привести числа в двузначные, типа:
Код
if(s<10)s='0'+s;


Цитата RedStar, Чт, 05.03.2015, 11:26:42
Вот нашел красивый скрипт таймера отсчета: Но как в него воткнуть отсчет 30 минут?

Наверняка, как-то можно, если ознакомиться с документацией. На крайняк уж - скрыть лишнее стилями..
Код
.etDays,.etHours{display: none;}

А еще можно написать автору скрипта что бы ввел еще и переменную вида/формата отображения..



- а то как-то нелогично смотрится приблизительная дата высадки человека на марсе...

ps
Ради таймера подлючать тяжеленный плагин - верх расточительства .. со стороны разработчика, естественно..

Прикрепления: timer_id_2.html(1Kb) · 0737114.png(56Kb)

 
Дата: Четверг, 05.03.2015, 15:12 |
RedStar
Лейтенант
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 6
Статус: Offline


Цитата likbezz, Чт, 05.03.2015, 13:19:56
ps
Ради таймера подлючать тяжеленный плагин - верх расточительства .. со стороны разработчика, естественно..


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


 
Дата: Четверг, 05.03.2015, 15:46 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


RedStar,
Цитата RedStar, Чт, 05.03.2015, 15:12:40
пишу скрипты как умею.

Аналогично )
Удачи вам, думаю все получится ) - ломать не стоить - в смысле - удалять не добавлять ))


 
Дата: Четверг, 05.03.2015, 16:07 |
RedStar
Лейтенант
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 6
Статус: 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>


Может будут, какие советы?
Ну и может быть кому-то из пользователей Вашего сайта этот скрипт таймера пригодится.

Прикрепления: 4220117.jpg(17Kb)

Сообщение отредактировал RedStar - Четверг, 05.03.2015, 16:13
 
Скрипты и коды для юкоз - Форум аццкого кодера » Раздел для начинающих » Как сделать так, чтобы... » Автоматическое открытие страницы по таймеру
Страница 1 из 11
Поиск: