Удалить страницу из истории 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>