Задача не тривиальная. Если просто сделать window.location.hash=», то само значение hash уберется, но в адресной строке останется #, что-же делать чтобы на Javascript убрать hash с # из window.location.hash?
Решение Javascript убрать hash с # из window.location.hash
Для этого можно использовать history.pushState, там самая функция, которая работает не везде (по крайней мере не в старых браузерах), но позволяющая изменять содержание адресной строки без перезагрузок, и без #.
В браузерах, где history.pushState поддерживается, достаточно просто вызвать history.pushState(«», document.title);
Ну а в тех браузерах, где этой функции нет, можно по старинке удалять хэш через window.location.hash=»;
Ниже привожу функцию, которая поможет решить проблему убрать hash с # из window.location.hash.