Справочная информация: У меня есть HTML-страница, которая позволяет расширять определенный контент. Поскольку для такого расширения необходимо загружать только небольшие части страницы, это делается с помощью JavaScript, а не путем перехода на новую страницу URL / HTML. Однако в качестве бонуса пользователь может перенаправить ссылки на такие расширенные разделы, то есть отправить кому-то еще URL-адрес, например
.
http://example.com/#foobar
и немедленно откройте категорию "foobar" для этого другого пользователя. Это работает с использованием parent.location.hash = 'foobar', так что с этой частью все в порядке.
Теперь вопрос: Когда пользователь закрывает такую категорию на странице, я хочу снова очистить фрагмент URL, т. Е. Превратить http://example.com/#foobar в http://example.com/, чтобы обновить отображение постоянной ссылки. Тем не менее, использование parent.location.hash = ''
вызывает перезагрузку всей страницы (например, в Firefox 3), чего я бы хотел избежать. Использование window.location.href = '/#'
не приведет к перезагрузке страницы, но оставляет в URL несколько непривлекательный знак «#». Так есть ли способ в популярных браузерах для JavaScript - удалить привязку URL, включая знак "#", не вызывая обновления страницы?