Как вернуться в историю, пока не будет достигнут определенный хэш? - PullRequest
0 голосов
/ 11 октября 2019

У меня есть SPA-сайт, организованный по шагам: step1 -> step2 -> ... -> step5, который также меняет хэш URL-адреса. то есть # step1. Когда пользователь достигнет последнего шага (шаг 5), я хочу, чтобы он мог вернуться до шага 1, а затем с моего сайта (к рефереру).

Я пытался сделать это с помощьюцикл, который возвращается с помощью API истории и проверяет, содержит ли местоположение определенную строку:

function go_back() {
    for(var loc = window.location.href; loc.indexOf('#step1') == -1; loc = window.location.href) {
        history.back();
    }
}

Но я знаю, что при компиляции JS он собирается войти в бесконечный цикл и никогдана самом деле обновить window.location.href, чтобы я мог выйти из него, когда мое условие будет выполнено.

Как я могу вернуться в историю, пока не достигнет желаемого шага?

Я также могуне возвращайтесь на количество пройденных шагов, потому что пользователь может выбрать такие пути, как step3 -> step2.2 -> step3. Таким образом, количество шагов назад не определено.

...