aaadddminnn
@aaadddminnn
php it ubuntu debian

Почему window.location.hash роботает не коректно?

Привет. Вот то как пытаюсь вызвать window.location.hash
function getContent(urls) {
    load();
    var url = new URL(urls);
    var pag = url.pathname + url.search + url.hash;
    var pages = pag.replace('#','');
    if (pages === '/') {
        page('/app/page/index.html');
    } else {
        page('/app/page' + pages + '.html');
        //history.pushState(null, null, pages);       
        window.location.hash = pages;
    }

}

Если использовать history.pushState то всё нормально роботает.
Если window.location.hash то на сервер едет около 30 вызовов строки page('/app/page' + pages + '.html');
и юрл получаю
genarais.tk/#/////////////////////////////////////...
а надо
genarais.tk/#/education/index
консоль говорит
too much recursion

Зарание спасибо.
  • Вопрос задан
  • 363 просмотра
Решения вопроса 1
DIITHiTech
@DIITHiTech
Fullstack javascript developer
Этого куска кода недостаточно, чтобы понять что у Вас там происходит. Неясно кто такой load(), где вызывается getContent.
Раз рекурсия появляется при window.location.hash, то может вы где то навесили обработчик на hashchange, а в нем опять присваиваете hash значение. Нужно тогда проверять перед присваиванием:
if( window.location.hash != pages) window.location.hash = pages;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы