Удалить страницу из истории JQuery Mobile, чтобы кнопка "Назад" обошла ее

Я просмотрел документацию jQuery Mobile безрезультатно, так что, надеюсь, кто-то здесь решил, что я до сих пор не нашел способ.

У меня есть страница jquery для мобильных устройств, которая обслуживается обычным способом (назовите ее "отображение товара"). Содержит информацию о конкретном предмете. На этой странице есть кнопка, которая переводит пользователя на страницу, на которой он / она может делать заметки (по сути, большие текстовые области) по отображаемому элементу. Нажмите "Сохранить" на странице заметок и отправьте обратно на страницу отображения элемента.

Моя проблема в том, что после того, как заметки были сохранены, я бы хотел, чтобы кнопка "Назад" на странице отображения элемента ссылалась на страницу, на которой находился пользователь до первого посещения страницы отображения элемента, а НЕ на поведение пользователя по умолчанию. вернуться на страницу заметок (поскольку технически это была последняя страница, на которой был пользователь).

Итак, текущее поведение:

страница списка элементов -> страница отображения элемента -> нажмите "Изменить заметки на элементе" -> страница заметок -> нажмите "Сохранить" -> страница отображения элемента -> нажмите "Назад" -> страница заметок.

Я хочу заменить последний шаг нажатием кнопки "Назад", чтобы перевести пользователя на страницу списка товаров.

Есть такая удача? Спасибо за любое руководство, которое вы можете предоставить

2 ответа

Вы можете изменять страницы, не сохраняя их в истории браузера, например:

$.mobile.changePage('#page', {reverse: false, changeHash: false});

это основано на ответе: Jquery mobile, удалите предыдущую страницу

Я был в той же проблеме, что и вы, и я создал подход, единственный, который работал. Если кто-то знает что-то лучше, это было бы очень полезно! Итак, позвольте мне объяснить, как решить (это немного сложно, но у меня получилось).

Вам нужно будет переопределить кнопку "Назад", чтобы откатить историю по X страницам в нужном HTML, например:

$(document).ready(function() {
    $('[data-rel=back]').click(function() {
        window.history.go(-4);
        return false;
    });
});

Но 4 на самом деле является переменной счетчика навигации в сеансе.

Если вы используете jsf, это будет выглядеть так:

window.history.go(-#{mySessionManagedBean.navigationCounter});

Кроме того, вам нужно инициализировать и увеличивать это при каждом изменении страницы.

Если вы используете jsf, это будет выглядеть так:

<h:commandButton ...>
    <f:setPropertyActionListener target="#{mySessionManagedBean.navigationCounter}" value="#{mySessionManagedBean.navigationCounter + 1}" />
</h:commandButton>
Другие вопросы по тегам