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