изменение в адресной строке
Всем здрасти! Пользователь ввел в адресную строку адрес и нажал enter.
Как это узнать? |
Установить скрытую камеру в его комнате например. Или закинуть кейлоггер. А если ваш адрес ввел, то вы об этом можете узнать по пришедшему к вашему веб-серверу характерному HTTP-запросу
|
Сначала не понял Вашу иронию, но читая свои слова сейчас, я сам просто умираю от смеха. Но я спрашивал немного о другом. Если я правильно понимаю, то ссылка вида
Цитата:
Цитата:
|
Вот ещё посмеялся))) Оказывается сайт.ру существует и я ему сейчас ссылку разместил на одном из топовых сайтов))))
|
Почему же не работает? location.hash можно спокойно считывать. Чтобы не ходить вокруг да около, опишите что вы хотите реализовать.
|
Цитата:
Флеш встроена в html оболочку при помощи swfobject ( это js код и правильнее сказать, что флеш встроена в штмл при помощи явы). В самом флеше сделал своё событие которое обменивается с файлом.js и грузит в себя то, что соответствует адресной строке. Сама адресная строка формируется во флеше и отправляется в яву которая её добавляет в строку и после этого отсылает её обратно во флеш. То что у меня не получается можно описать так: в штмл написана строчка: console.log(window.location.hash); и кода я вхожу использую адрес http://site.ru/#/one то код распознаёт строку, в консоль будет выведен этот адрес. Так мне и нужно, но только всегда! Вот если находясь на странице http://site.ru/#/one я в адресной строке наберу http://site.ru/#/two и нажму ентер, то не чего не произойдет. Консоль молчит, а значит и весь остальной код не будет работать так как оно не получило уведомление об этом. Как можно узнать об изменении? |
Событие window@hashchange
<a href="#hash">Смена путем перехода по якорю</a> <button onclick="location.hash = 'abc'">Смена скриптом</button> <script> window.onhashchange = function(e){ alert(e.type + ' hash =' + location.hash); }; </script> Привел пример срабатывания при переходе по анкору и при смене значения через javascript. Но сработает также при любом изменении хэш-составляющей, будь то навигация по истории или правка строки адреса вручную. |
danik.js Большое Вам Спасибо! Но теперь у меня другой вопрос.
Событие onhashchange мне не помогло, точнее сказать, оно точно так же срабатывало только один раз. я начал смотреть в гугле и пришёл на сайт https://developer.mozilla.org/ . Начал читать и пробовать, но результат был тот же. Потом я увидел ссылку на событие window.onpopstate применив который я увидел воочию, что события вызываются. Но мне не понятно вот, что..Если у меня не работает так как мне показали Вы - это плохо?) |
Ошибку я свою понял! У меня получается ( как я думаю ) hash === hash всегда. Либо эта конструкция не работает без чего то, о чем вы мне не сказали. Моя логика тут не применима и я не знаю что делать. Как по мне, то код ниже должен работать:
//если hash не ноль, то подписываемся на событие if(typeof window.hash !== null) { window.addEventListener('onhashchange',this.changeHandler); } function changeHandler(e) { console.log( e.type ); } Мне все же кажется, что я чего то не знаю. |
Если сделать события с вызовом метода, то работает при входе, дальнейшее изменение не происходят
window.onhashchange = change; function change() { console.log('reed'); } Если сделать без вызова, то не работает при входе, но работает при последующий изменениях window.onhashchange = change(); function change() { console.log('reed'); } чего яя не понимаю? |
Часовой пояс GMT +3, время: 17:05. |