показываю, что событие не на click стоит вешать, а на изменение хеша
|
Poznakomlus,
:-? ок если нужна только ссылка, если важно вернутся назад в нужное место, тогда код не рабочий или я чего-то не понимаю. |
Цитата:
есть специальное событие по работе с хешами если мы работаем с хешами то логичнее его использовать я же показал как определяется хеш и как при изменении истории он затирается |
Poznakomlus,
тогда может history.pushState заменить на history.replaceState в вашем коде? |
Цитата:
Цитата:
я только про обработчик событий говорю как навешивать, внутренняя реализация это уже к разработчику, что ему надо и как вести историю ведь здесь же нет проверки поддерживает ли броузер историю вообще, если докапываться |
Цитата:
|
Poznakomlus,
рони, Благодарю от всей души. Всё работает как часики. Вот так теперь выглядит мой код для обработки события перехода по хешу: <script type="text/javascript"> window.onhashchange = function () { console.log(location.hash); history.replaceState('', '', '/url'); }; </script> А как теперь сделать то же самое при переходе по якорю с другой страницы? window.onload делает это до перехода по хешу. В результате правильная строка при бесполезном переходе. |
Цитата:
|
Уважаемые форумчане, проблема не решается обращением к моим знаниям js и спекулятивному шаманству с бубном в этой области. Повторяю свой вопрос: как убрать хеш из адресной строки при переходе с другой страницы по ссылке типа:
<a href="url#hash">Проблема в том, что событие hashchange не происходит, а навешивание изменения ссылки при загрузке окна приводит к тому, что переход осуществляется уже по этой изменённой ссылке. Надеюсь на вашу отзывчивость, т. к. безрезультатно часами застреваю над этой задачей. |
avalan4e,
убрал ... может так попробовать пока знатоки не откликнулись. <script type="text/javascript"> window.onload = function () { location.hash && window.setTimeout(function() { history.replaceState('', '', '/url'); },300) }; </script> |
Часовой пояс GMT +3, время: 11:50. |