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

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

Megatron13 02.01.2012 17:53

Что-то я сегодня тугодумлю. Вы не могли бы расписать что не так и как сделать правильно? Или конкретнее намекнуть?

zebra 02.01.2012 18:07

Я написал вам нужное событие.

Megatron13 02.01.2012 19:44

Так, onbeforeunload выдает диалоговое окно "Хотите ли вы выйти". НО мне нужно вместо этого диалогового окна впихнуть завершение загрузки, чтобы редирект мой не загрузился (да и вообще все ссылки на странице не заработали, и чтобы только лишь менялся url). И я не понимаю как.

zebra 02.01.2012 20:00

Вы никак не можете запретить юзеру уйти со страницы.

Megatron13 02.01.2012 20:02

нет есть 1 уход - закрыть ее.
з.ы. а вообще я помню как у меня 2 раза 2ым окном загружался какой-то порносайт при закрытии которого все время вылетало диалоговое окно в котором требовали прислать смс-ку хз даже за что. Когда я нажимал отмену (не уходить с сайта) окно вылетало снова. Т.е. я даже не мог например перейти на другую вкладку. в итоге пришлось закрывать весь браузер.


ну так что? как мне оборвать загрузку через onbeforeunload?


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