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

HTML+CSS+JavaScript

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

 

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

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

тема: javascript как узнать url по которому переходит браузер
 
 автор: Filatov_Aleksey   (06.03.2012 в 11:28)   письмо автору
 
 

Здравствуйте, уважаемые программисты.
На странице есть разного рода ссылки, к примеру:

<a href='http://ya.ru/'>link</a>
<span onclick="location.href('http://www.ya.ru')">link for yandex</span>

В JQueryj есть собитие unload, которое срабатывает при переходе уходе с текущего документа:

 $(window).unload(function(){ ...... });

Где и как узнать адрес по которому переходит браузер?

  Ответить  
 
 автор: task   (06.03.2012 в 11:36)   письмо автору
 
   для: Filatov_Aleksey   (06.03.2012 в 11:28)
 

Вы даже jQuery используете, так какие трудности назначить, а еще лучше делегировать обработку событий у span, таким образом зная кто источник щелчка, и соответственно адрес. И почему щелчок не на саму ссылку?

  Ответить  
 
 автор: Filatov_Aleksey   (06.03.2012 в 12:49)   письмо автору
 
   для: task   (06.03.2012 в 11:36)
 

Вы имели ввиду что то вроде этого:

$(document).ready(function(){
 $('a').click(function(){
var link = $(this).attr('href');
     });
});

такой вариант не подойдёт, т.к. изменение адреса не всегда происходит по кликам, может произойти к примеру по истечению таймера ну и т.д.
Единственное, что меня интересует, это как отловить адрес куда переходит браузер?
Не критикуйте меня, я не особо в js, только начинающий.

  Ответить  
 
 автор: ЯСА   (06.03.2012 в 13:10)   письмо автору
 
   для: Filatov_Aleksey   (06.03.2012 в 12:49)
 

По новому адресу переходит браузер.
А событие onunload работает на текущей странице.

Браузер и страница в браузере - разные объекты.

Страница при обработке события onunload НЕ ИМЕЕТ информации о том, куда переходит браузер.

Поэтому и в ссылках, и в спанах, и в таймере необходимо эту информацию для страницы сохранить.
И об этом написано мною ранее ниже.

  Ответить  
 
 автор: ЯСА   (06.03.2012 в 12:37)   письмо автору
 
   для: Filatov_Aleksey   (06.03.2012 в 11:28)
 

Немного теории.

Всякое событие - загрузка окна, клик, наведение мыши, уход со страницы и прочее-прочее... - оно имеет начало, конец и продолжается какое-то время. Обрабатывается это событие по состоянию ЗА доли секунды до завершения самого события. Соответственно, во время обработки этого события - по вашим инструкциям onload, onclick, onmouseover, onunload и прочее - МОЖНО узнать ВСЁ об этом событии. Например, при клике по ссылке инструкции по onclick в этой ссылке доступна ВСЯ информация об этой ссылке - все её параметры, все её атрибуты, все её свойства, включая HREF этой ссылки.
Но как только событие завершено - никакой более информации добыть НЕЛЬЗЯ.

Поэтому при обработке события onunload (за долю секунды перед окончательным уходом со страницы) страница не имеет информации о том, какая ссылка/кнопка/span... до этого была нажата.

Значит, надо, чтобы страница об этом уже знала ЗАРАНЕЕ.

Потому всё просто.
Вводите глобальную переменную var hul; (в переводе Href of UnLoad, но, разумеется, можете дать любое иное имя этой переменной).
И каждой ссылке (каждому span'у) прописываете:
<a href='http://ya.ru/' onclick="hul = this.href">link</a>
<span onclick="hul = location.href = 'http://www.ya.ru'">link for yandex</span> 

Соответственно, ДО завершения события onunload странице будет известно - по какому адресу уходит браузер - alert (hul);
Если hul не будет иметь значения (undefined) - делаете вывод, что со страницы уходят каким-то иным способом (закрывают окно/вкладку, юзер пишет что-то в адресной строке, переходит по закладке из "Избранного"...)

  Ответить  
 
 автор: Filatov_Aleksey   (06.03.2012 в 16:14)   письмо автору
 
   для: ЯСА   (06.03.2012 в 12:37)
 

Благодарю за ответ. Пришёл к выводу, что перед выводом страницы, её нужно отпарсить, дописав в тексте где есть событие onclick , hul = .....старый текст.... и для ссылок (<a....) тоже дописать (добавит атрибут onclick="hul=this.href"). А в js написать:

<script>
var hul;
$(window).unload(function(){
if (hul!='undefined')
{
alert ('Пользователь, ты идёш по адресу'+hul);
}
});
</script>

  Ответить  
 
 автор: task   (06.03.2012 в 17:29)   письмо автору
 
   для: Filatov_Aleksey   (06.03.2012 в 16:14)
 

И зачем ради такой фичи unload, разве сообщение нельзя показать перед переходом? А вдруг пользователь ошибся, вдруг захочет отменить?

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

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