Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Перехват события "обновить страницу"


Автор: Altar 30.11.2005, 14:26
Я бы хотел, чтобы при нажатии в браузере на кнопку "обновить", у меня загружалась другая страница. Как это событие называется и где его нужно разместить? smile smile
Заранее спасибо.

Автор: GIK 30.11.2005, 15:25
Можно использовать href дескрипторов <a>
Код

<html>
 <head>
  <script type="text/javascript">
  <!--   
      function g1()
{ document.location.href="http://forum.vingrad.ru"
 }
   //-->
  </script>
 </head>
<body>
<button onClick="g1()">Обновит</button>
</body>
</html>

Добавлено @ 15:26
Опечаталься про <a>
Сори.

Автор: DEER 30.11.2005, 18:03
чтобы призаходе на страницу происходил редирект на другую надо написать в ней
Код

<html><head><title>We've Moved!</title>
<meta http-equiv="Refresh" content="0; URL=http://МОЙ_ДРУГОЙ_АДРЕС.ru">
</head><body></body></html>


пользуясь этим можно как нить развить мысль сделать этот редирект после обновления,
например: найти событие какое нить типа onrefresh (какое нить такое должно быть), и при этом событии вызываешь функцию, которая dociment.write'ом пишет тот код, который я привел выше

А может я и не прав

Автор: Guest 30.11.2005, 18:39
GIK помойму человек имел в виду кнопку панели браузера........ На сколько я знаю, так сделать нельзя......

Автор: z-END 30.11.2005, 18:43
может так сдеалть?
при загрузке страницы смотрим есть ли кука если нет то ставим куку на час например, иначе меняем window.location

Автор: Гость_12345 1.12.2005, 03:46
Наиболее "железное" определение рефреша на странице - это когда в форме ввода остались следы деятельности (скриптов или юзера). Было. Но в Опере почему-то решили отказаться от традиции и перезагружать поля формы начисто. В результате, для неё вопрос открытый, можно ли чем-либо зарегистрировать рефреш, а для остальных - <br>

Код
<script>
onload=function(){    cH=foHidd.chkHidd;    l=location.toString();
    if(cH.value>0)location=l.substr(0,l.indexOf('#')>0?l.indexOf('#'):l.length)+'#'+cH.value;    //проверить, была ли страница ранее загружена
    cH.value++;    //записать в форму признак первой загрузки страницы.
}
</script>
<form name=foHidd><input name=chkHidd ty pe=hidden --можно поставить потом></form>
По росту значений якоря в УРЛе видна реакция на перезагрузки. Если УРЛ вписать в новое окно или поверх другой страницы, или перетащить ссылку на окно, или перейти, страница воспримется как новая. С одним небольшим исключением в FF - если перетащить ссылку на страницу с тем же УРЛом, но другим якорем, она посчитается старой обновлённой (значения формы сохранятся), а в IE - новой. За исключением этих 2 мелочей можно считать, что рефреш ловится (отмечается).

Всё же, интересно, есть ли в Опере способ поймать рефреш?

Автор: Sardar 1.12.2005, 21:44
Цитата
Всё же, интересно, есть ли в Опере способ поймать рефреш?

Можно поставить куку только для текущего URL (ставим path не /) и временем жизни до закрытия браузера. При закрузке страницы глянем на куку, если существует, значит рефрешь был. Закрыв и открыв окно по новой кука убьёться, т.е. работа как со вежим окном.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)