powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JavaScript) следим за навигацией (якорем)
14 сообщений из 14, страница 1 из 1
(JavaScript) следим за навигацией (якорем)
    #35616386
NT Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После бесполезных попыток найти документацию по установки событий на навигацию в браузере (кнопки "назад" и "вперёд"), пришел к выводу, что единственным решением, скорее всего, будет ловля изменения значения якоря при помощи setInterval. Честно эта идея мне не нравиться, но я не нахожу другого решения. У кого может, будут идеи получше?
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616405
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нет такого события. Если бы оно было - его можно было бы переопределить. Типа нажимаешь "назад" - попадаешь на нехороший сайт.
Бороться с этим - бесполезно. Мне просто кажеться (и небезосновательно), что, если уж возникает такая проблема - значит какой-то косяк в структуре сайта.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616484
NT Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge,
Вы все утрируете, ибо я могу повесить функцию на таймер, которая будет проверять изменился ли адрес, если изменился, то гоу то нехороший сайт.
Согласитесь, результат такой-же, что и обработчик клавиш "Назад" и "Вперёд", но реализовано по индуски...
Не хочу писать индусский код :D
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616496
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NT ManShSerge,
Не хочу писать индусский код :D
Хотите. Попадая на другой сайт Вы попадаете и в другое пространство имен и Ваша setInterval функция не будет действовать. Просто очищайте историю, если не хотите уходить с сайта. В принципе мне не нравится когда некоторые сайты очищают историю (как пользователю). Поэтому это нужно делать только в тех случаях когда нужно.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616497
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NT Man,

Дело не в "нехорошем сайте". Туда попасть миллион способов есть, просто, нутрём чувствую, что если возникает проблема - значит чего-то в структуре не так. Я уже этот факт неоднократно даже у своих сослуживцев наблюдал. Вот и интересно у Вас-то чего? Хоть бы написали из-за чего проблема возникла? Может ещё кому интересно будет.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616504
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> повесить функцию на таймер, которая будет проверять изменился ли
> адрес

Будут ли живы оные функция и таймер после перехода браузера на другой сайт?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616523
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyПросто очищайте историю...
Очень плохой совет. Я бы на такой сайт и не ходил бы. Даже и не проверял, а что её (историю) так просто очистить можно? Так за это ж, ёлки-палки, можно и по физии... . Зашёл куда-то с хорошего, нужного мне сайта, а мне взяли и историю почистили.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616579
NT Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge,
Все банально. Пишу свой AJAX движок. А, как нам известно, любые динамические изменения страницы не отражаются в истории (со страницы то никуда мы не уходили). А хочется, чтобы все было как у обычных сайтов, т.е. "назад" и "вперёд" работало. Да чтобы можно было другу ссылку дать на нужную страницу, и он туда попал без проблем. Для этого меняю совместно с динамической перезагрузкой и ссылку. Вернее не всю ссылку, а то, что разрешено менять стандартами, а это якорь. И все бы хорошо, даже в историю изменения адреса пишутся, но когда жмакаешь "назад" или "вперёд" изменений ноль (опять же страница не перезагружалась в типичном понятии браузера). Вот тут и задача, надо отслеживать либо нажатие клавиш "назад", "вперёд" либо получать событие при изменении якоря (части адреса за символом '#').
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616612
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,
Действительно, историю нельзя почистить (распространяют для этого эктивиксы).
Но почистить иногда нужно просто если идет работа с приложением в котором логика не допускает вольности. Впрочем для полностью Аякс-приложения это не так актуально. так как начать можно в новой вкладке/окне, а дальше все идет фоновыми запросами.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616623
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NT Man,

Да в этом случае setInterval можно использовать. Но есть небольшая проблема.
На время выполнения JavaScript функций ИЕ "останавливает счетчик" и все будет работать более менее гладко. Прочие же браузеры запоминают вызовы и выстреливают их. так что при интенсивной работе JavaScript таких отложенных вызовов может накапливаться довольно много (возможно это скажется на производительности хотя нужно пробовать - может быть и не так сильно).
Поэтому можно попробовать цепочку вызовов setTimeout с малым интервалом и setInterval с большим интервалом (для того чтобы запустить процесс на случай ошибки при вызове setTimeout).

Но в общем-то с учетом асинхронности загрузки такой способ может иметь неоднозначные результаты, так как отмнившаяся страничка может прорисовываться дольше чем требуемая и результат будет зависеть от того насколько терпеливо пользователь ожидает загрузки страничек при переходе по истории.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616903
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NT Man,

Про адрес с решёткой - мысль правильная, я тоже к такому выводу в свое время пришёл (совершенно независимо), когда хотел движок хорума написать на аяксе. А вот взад-вперёд уж точно ничего не поделаешь. Можно хранить историю в массиве (он-то никуда не денется - всё на одной странице!) и нарисовать на страничке свои кнопки взад-вперёд.
ПС а вот про таймер не понял зачем он.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35616907
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таймер проверяет адрес и генерирует событие
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35617002
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неплохо с этой задачей справляется jQuery. Год назад, когда я делал такую же хрень, то пользовался jquery.history.js. В FF и Opera все было тип-топ, в ИЕ немного подглючивало. Я поковырял немного библиотеку, немного доделал, но бросил. Думаю, за год точно что-то поменялось. Если тогда это сносно работало, то сейчас и подавно ... ИМХО

Библиотека идет как дополнение к jQuery - jQuery.extend(...), но при желании и возможностях можно ее поколупать под себя - там вроде используются две привязки к основной библиотеке - history и browser для кроссбраузерности.
...
Рейтинг: 0 / 0
(JavaScript) следим за навигацией (якорем)
    #35617781
NT Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал через setInterval. Кстати ни Oper-у, ни FireFox, ни IE это не грузит даже с параметром опроса адреса 1мс. А вот Google Crome хромает показав загрузку процессора 30%.
Идем дальше в Opera и FireFox работает красиво и как надо, а вот IE - Must Die!
Первую проблему, я решил. (Он не писал в историю изменение якоря, если нет для соответствующего якоря селектора. Настругал я ему селекторов.)
Теперь пишет в историю, изменяет адресную строку, да только толку от этого...
location.hash и location.href замирают на последнем адресе. т.е. последующие "назад", "вперёд" бестолку ему. Как получить теперь реальный адрес??
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JavaScript) следим за навигацией (якорем)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]