показываю, что событие не на 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, время: 07:10. |