Как убрать финальный пустой хэш (вида site.com/page.html#)?

Как убрать финальный пустой хэш?
Решения чистить адресную строку от хэшей не подходят - если значение якоря заполнено, то этот функционал нужен.
Соответственно по этой причине не годится и
history.pushState('', document.title, window.location.pathname);

То есть надо чистить: site.com/page.html# -> site.com/page.html
Но надо оставить: site.com/page.html#anchor

-----
Добавлю: испробовал вот такой "лобовой" вариант
var myhash = String(window.location.hash);
    if (myhash.length < 1) window.location.hash='';


так вот myhash.length возвращает 0 и при отсутствии хэша, и при варианте site.com/# и при варианте site.com/page.html# - и НЕ ЧИСТИТ этот чертов завершающий # :(

Попробовал "обмануть":
if (myhash.length < 1) {
        var mypath = String(window.location.pathname);
        if (mypath.length < 2) window.location.hash='';
    }


результат аналогичный: site.com/# решетка гордо в URL :(
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
akzhan
@akzhan
var m = window.location.href.match(/([^#]+)#$/);

if ( m !== null ) {
    window.location.replace(m[1]);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы