Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   событие onHashChange (https://javascript.ru/forum/misc/39656-sobytie-onhashchange.html)

riva 07.07.2013 15:14

событие onHashChange
 
Есть ли у этого события, параметр 'hash' передающийся вместе с событием? А то не красиво будет выглядеть, если в обработчике событий узнавать 'hash' через window.

ruslan_mart 07.07.2013 15:48

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;
}

riva 07.07.2013 16:26

Ruslan_xDD Спасибо! я тоже сначала хотел парсить линк, но после того, как мне рассказали о событии onHashChange склонился в его сторону. Создал на класс глобалдиспетчера и... и глупо смотрится, когда в обработчике событий, для которого даже событие создано, узнавать этот hash через виндов. Хочется через свойства события получать.
Вот есть же у событий e.type, но почему у специально созданного события нет e.hash? Вот я и спрашиваю - есть может такое свойство, e.......hash?

ruslan_mart 07.07.2013 16:44

riva,

window.addEventListener('hashchange', function(event)
{
   alert(event.newURL.split('#')[1]);
});

riva 07.07.2013 19:14

Спасибо!

danik.js 07.07.2013 19:58

riva, че ты фигней страдаешь то. newURL имеется не во всех браузерах. Почему бы просто не написать location.hash.substring(1) ?

riva 08.07.2013 13:22

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


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