Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: редирект с таймером
 
 автор: Leon22   (30.08.2008 в 21:01)   письмо автору
 
 

Доброго времени суток.
у меня вот какая задача:
Нужно что б при заходе на сайт, когда загрузилась страница, показывалась надпись:
через (х) секунд вы будете перемещены на сайт такой-то...
и в том месте там где (х) шол отсчет 10... 9... 8... и т.д.
За рание благодарю за ответ

  Ответить  
 
 автор: nek-v   (31.08.2008 в 00:43)   письмо автору
 
   для: Leon22   (30.08.2008 в 21:01)
 

в подфорум о JavaScript обратись...
там помогут...

  Ответить  
 
 автор: xx77   (31.08.2008 в 02:14)   письмо автору
 
   для: Leon22   (30.08.2008 в 21:01)
 

попробовал сделать такой редирект на главную страницу,
но почему-то время в javascript не совпадает с цифрой указанной в <meta>

<html>
<head>
<meta http-equiv="Refresh" content="20; url=/"/>
</head>
<body>
<div id="d" style="margin: 0 10%;  text-align:center; font:bold 75px Arial; border: double 5px red;">10</div>
<script language="javascript">
var t = 10;
var flag = null;
var  d = document.getElementById('d');

function gt() { 
 t--;
 d.innerHTML =  t ;
 if (t==0) clearInterval(flag);
}

flag = setInterval('gt()', 1000);
</script>
<p>
wait......
</p>
</body>
</html>

  Ответить  
 
 автор: sim5   (31.08.2008 в 09:08)   письмо автору
 
   для: xx77   (31.08.2008 в 02:14)
 

Это не онтосится к РНР, да и в метатеге вы одно время указываете, а интервалу другое.
<html> 
<head> 
</head> 
<body> 
<div id="d">20</div> 
<script language="javascript"> 
var t = 20; 
function gt() {  
  if (!t) window.location = "http://domain.ru/";
  else {
    t--; 
    document.getElementById('d').innerHTML =  t;
  }   

setInterval('gt()', 1000); 
</script> 
<p> 
wait...... 
</p> 
</body> 
</html>

  Ответить  
 
 автор: xx7   (31.08.2008 в 09:20)
 
   для: sim5   (31.08.2008 в 09:08)
 

Указывал по 10, последней напечатанной цифрой была 2ка.

  Ответить  
 
 автор: sim5   (31.08.2008 в 10:20)   письмо автору
 
   для: xx7   (31.08.2008 в 09:20)
 

Только не надо ля-ля, вы уменьшаете переменную на 1, которой изначально устанавили значение равное 10. Если бы у вас и могло появится 20, то только -20.

  Ответить  
 
 автор: xx77   (31.08.2008 в 11:39)   письмо автору
 
   для: sim5   (31.08.2008 в 10:20)
 

симмитировал то о чём я говорил
<?
header
('Content:text/html; charset=windows-1251');
?>
<html>  
<head> 
<meta http-equiv="Refresh" content="10; url=/"/> 
</head>
<body> 
<div id="d">10</div>  
<script language="javascript">  
var t = 10;  
function gt() {   
  if (!t) clearInterval(f);
  else { 
    t--;  
    document.getElementById('d').innerHTML =  t; 
  }    
}  
var f = setInterval('gt()', 1000);  
</script>  
<p>  
wait......  
</p>  
</body>  
</html>


оказалось что это из-за того что у меня в начале файла стоял header()
мета применял чтобы независимо от того включен-ли javascript происходило перенаправление

UPD//
tested only in Opera

  Ответить  
 
 автор: sim5   (31.08.2008 в 11:58)   письмо автору
 
   для: xx77   (31.08.2008 в 11:39)
 

Если вы делаете таймер на JS, то нет никакой неодходимости еще указывать и метатег "Refresh". Ну вот к чему эти два таймера?

  Ответить  
 
 автор: xx77   (31.08.2008 в 12:24)   письмо автору
 
   для: sim5   (31.08.2008 в 11:58)
 

просто никчёмные таймеры ))

в последнее время всё чаще выключаю javascript в браузере , что-бы не качать у всех jquery )
и хоть чуть-чуть поберечь gprs-траффик. но и правда нет ничего лучше ссылки типа [url=#]<a>Кликните сюда , если по каким-то причинам Вы ещё не переместились куда-нибудь .)</a> [/url]

  Ответить  
 
 автор: sim5   (31.08.2008 в 12:32)   письмо автору
 
   для: xx77   (31.08.2008 в 12:24)
 

Вы можете себе все отключить, вплоть сам браузер. Но если вы зайдествуете JS сценарий, и, если предполагаете, что у пользователя может быть отключен JS, то и писать код надо соответствующее, чего у вас никак не наблюдается.

  Ответить  
 
 автор: xx77   (31.08.2008 в 12:49)   письмо автору
 
   для: sim5   (31.08.2008 в 12:32)
 

если на то пошло ,)
отключите в опере автоматическое перенаправление, запустите вашу функцию
и понаблюдайте за крестиком индикатирующим загружена-ли страница ))

  Ответить  
 
 автор: sim5   (31.08.2008 в 12:56)   письмо автору
 
   для: xx77   (31.08.2008 в 12:49)
 

Если на то пошло, то в этом случае и метатег не сработает, так что не важно, чем вы пытаетесь перенаправить, через метатег, или по интервалу window.location.

  Ответить  
 
 автор: xx77   (31.08.2008 в 13:09)   письмо автору
 
   для: sim5   (31.08.2008 в 12:56)
 

но всётаки в вашей функции есть баг зацикливающий браузер при отключенном перенаправлении
, а в моей его нет ;))
всё-таки реализуя похожее , реализатор будет сам реализовывать так как ему нравится , на своё реализаторское усмотрение ) мы лишь показываем возможные механизмы реализации.
ушёл пить чай ,))

  Ответить  
 
 автор: sim5   (31.08.2008 в 13:13)   письмо автору
 
   для: xx77   (31.08.2008 в 13:09)
 

Нет там никакаго бага, просто надо очистить итервал, я это просто опустил когда писал, добавьте, и ничего страшного не произойдет.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования