Javascript.RU

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

изменение в адресной строке
Всем здрасти! Пользователь ввел в адресную строку адрес и нажал enter.
Как это узнать?
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2013, 22:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Установить скрытую камеру в его комнате например. Или закинуть кейлоггер. А если ваш адрес ввел, то вы об этом можете узнать по пришедшему к вашему веб-серверу характерному HTTP-запросу
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2013, 21:16
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Сначала не понял Вашу иронию, но читая свои слова сейчас, я сам просто умираю от смеха. Но я спрашивал немного о другом. Если я правильно понимаю, то ссылка вида
Цитата:
http://site.ru/#/one
на самом деле выглядит
Цитата:
http://site.ru/
то есть написав ссылку как в первом примере, на самом деле я перейду по адресу, как во втором примере.Мои минимальные познания говорят, что можно при входе проверять window.location.hash, но я не буду дальше продолжать, потому что вы и сами наверняка знаете, что так не работает. И я опять не знаю как спросить...может - какое событие есть для проверки адресной строки?
Ответить с цитированием
  #4 (permalink)  
Старый 05.07.2013, 21:18
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Вот ещё посмеялся))) Оказывается сайт.ру существует и я ему сейчас ссылку разместил на одном из топовых сайтов))))
Ответить с цитированием
  #5 (permalink)  
Старый 05.07.2013, 21:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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

Цитата:
Чтобы не ходить вокруг да около, опишите что вы хотите реализовать.
я уже описывал, но боюсь, что и в этот раз вы можете не до конца понять.
Флеш встроена в html оболочку при помощи swfobject ( это js
код и правильнее сказать, что флеш встроена в штмл при помощи явы).
В самом флеше сделал своё событие которое обменивается с файлом.js и грузит в себя то, что соответствует адресной строке. Сама адресная строка формируется во флеше и отправляется в яву которая её добавляет в строку и после этого отсылает её обратно во флеш.
То что у меня не получается можно описать так:
в штмл написана строчка:
console.log(window.location.hash);

и кода я вхожу использую адрес
http://site.ru/#/one

то код распознаёт строку, в консоль будет выведен этот адрес.
Так мне и нужно, но только всегда!
Вот если находясь на странице
http://site.ru/#/one

я в адресной строке наберу
http://site.ru/#/two

и нажму ентер, то не чего не произойдет. Консоль молчит, а значит и весь остальной код не будет работать так как оно не получило уведомление об этом. Как можно узнать об изменении?
Ответить с цитированием
  #7 (permalink)  
Старый 05.07.2013, 22:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Событие 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, 05.07.2013 в 22:55.
Ответить с цитированием
  #8 (permalink)  
Старый 05.07.2013, 23:53
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

danik.js Большое Вам Спасибо! Но теперь у меня другой вопрос.
Событие onhashchange мне не помогло, точнее сказать, оно точно так же срабатывало только один раз. я начал смотреть в гугле и пришёл на сайт https://developer.mozilla.org/ . Начал читать и пробовать, но результат был тот же. Потом я увидел ссылку на событие window.onpopstate применив который я увидел воочию, что события вызываются. Но мне не понятно вот, что..Если у меня не работает так как мне показали Вы - это плохо?)
Ответить с цитированием
  #9 (permalink)  
Старый 06.07.2013, 14:31
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Ошибку я свою понял! У меня получается ( как я думаю ) hash === hash всегда. Либо эта конструкция не работает без чего то, о чем вы мне не сказали. Моя логика тут не применима и я не знаю что делать. Как по мне, то код ниже должен работать:
//если hash не ноль, то подписываемся на событие
if(typeof window.hash !== null)
        {
            window.addEventListener('onhashchange',this.changeHandler);
        }
        function changeHandler(e)
        {
            console.log( e.type );
        }

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

Если сделать события с вызовом метода, то работает при входе, дальнейшее изменение не происходят
window.onhashchange = change;
    function change()
    {
        console.log('reed');
    }

Если сделать без вызова, то не работает при входе, но работает при последующий изменениях
window.onhashchange = change();
    function change()
    {
        console.log('reed');
    }

чего яя не понимаю?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбранный файл/картинки не отображаются в адресной строке браузера zlodei2 Общие вопросы Javascript 10 21.12.2011 02:08
Изменение юрл адреса в адресной строке браузера (Sandr) Общие вопросы Javascript 12 25.08.2011 09:24
Изменение текста в адресной строке Wagner Events/DOM/Window 6 13.09.2010 14:30
Как изменить адрес в адресной строке браузера? xqx Events/DOM/Window 2 24.04.2010 17:46
Как можно изменить URL в адресной строке браузера? балерун Events/DOM/Window 12 17.11.2009 13:08