Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Location.replace и события (https://javascript.ru/forum/misc/24482-location-replace-i-sobytiya.html)

Megatron13 02.01.2012 02:41

Location.replace и события
 
Всем привет! У меня возник вопрос по поводу событий и редиректа. Суть такова:
мне надо чтобы при выходе со страницы у человека случался редирект куда-то.
я попробовал делать через события onunload и onbeforeunload. когда я пишу
onbeforeunload="javascript:window.alert('Спасибо, что нас посетили!')"

то, все работает.
когда пишу
onunload="javascript:window.alert('Спасибо, что нас посетили!')"

Тоже все работает. Но когда пишу
onbeforeunload="javascript:window.location.replace("http://yandex.ru")"

или
onunload="javascript:window.location.replace("http://yandex.ru")"

то ничего.
Почему?

Gvozd 02.01.2012 02:58

А вы сами как думаете?

Megatron13 02.01.2012 04:03

Я думаю, что редирект происходит, но сразу после этого страница закрывается. Или я просто криворук. В любом случае я не знаю что делать. Помогите плз с решением изначальной проблемы. Хотя нет, изначальная выглядит вот так:
Onload ом я запускаю редирект а потом onunloadom обрубаю загрузку. Но почему-то не выходит. Утром напишу все более подробно.

zebra 02.01.2012 04:24

Присмотритесь к кавычкам

Megatron13 02.01.2012 15:13

да, спасибо я поправил, и редирект заработал. Но теперь я сталкнулся с другой проблемой: как оборвать загрузку страницы после редиректа?
Я попробовал window.close() - прочитал где-то, что это как раз таки и обрубает, но на самом деле закрывает окно. Сейчас попробовал
OnUnLoad="javascript:window.stop()"

но обрубания загрузки не происходит. как быть?

zebra 02.01.2012 16:17

Та и правильно делает :nono:

Megatron13 02.01.2012 16:27

Щито? Помогите плз. Нужно как то организовать обрубание соединения после редиректа. Но как?

zebra 02.01.2012 16:44

onbeforeunload попробуйте

Megatron13 02.01.2012 17:12

<body
OnBeforeUnLoad="javascript:window.stop()"
OnLoad="javascript:location.replace('http://yandex.ru')"
>
Текст
</body>

Не работает

zebra 02.01.2012 17:28

Погуглите как нужно вешать события, что оно должно возвращать.


Часовой пояс GMT +3, время: 16:13.