Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2013, 15:14
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

событие onHashChange
Есть ли у этого события, параметр 'hash' передающийся вместе с событием? А то не красиво будет выглядеть, если в обработчике событий узнавать 'hash' через window.
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2013, 15:48
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

riva, я полагаю, Вы хотите отследить изменение hash в адресной строке браузера? Если да, то можно отслеживать все ссылки с hash и по нажатию по ссылке вызывать ф-цию.

function changeHash()
{
   alert(window.location.hash);
}

window.onload = function()
{
   var a = document.links;
   for(i=0; i<a.length; i++) if(a[i].href.indexOf('#')+1) a[i].onclick = changeHash;
}
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2013, 16:26
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Ruslan_xDD Спасибо! я тоже сначала хотел парсить линк, но после того, как мне рассказали о событии onHashChange склонился в его сторону. Создал на класс глобалдиспетчера и... и глупо смотрится, когда в обработчике событий, для которого даже событие создано, узнавать этот hash через виндов. Хочется через свойства события получать.
Вот есть же у событий e.type, но почему у специально созданного события нет e.hash? Вот я и спрашиваю - есть может такое свойство, e.......hash?
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2013, 16:44
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

riva,

window.addEventListener('hashchange', function(event)
{
   alert(event.newURL.split('#')[1]);
});
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2013, 19:14
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2013, 19:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

riva, че ты фигней страдаешь то. newURL имеется не во всех браузерах. Почему бы просто не написать location.hash.substring(1) ?
Ответить с цитированием
  #7 (permalink)  
Старый 08.07.2013, 13:22
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

danik.js я не страдаю! я просто хочу как лучше.) И пока мне приходят какие то сумашедшие на ваш взгляд идеи, я немного из ваших комментариев узнаю полезную информацию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие input и IE10 kobezzza Internet Explorer 2 21.03.2013 19:02
событие onhashchange і popstate в ие7 bot87 Events/DOM/Window 2 08.03.2012 05:51
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Отловить событие simple Events/DOM/Window 3 11.05.2011 14:20
какое событие возникает во время формирования html IT-AleX Events/DOM/Window 2 20.02.2009 16:13