jquery mobile history.back() работает только в первый раз

#javascript #jquery #jquery-mobile #cordova

#javascript #jquery #jquery-мобильный #кордова

Вопрос:

в настоящее время я столкнулся с проблемой с историей. back () .

У меня есть 2 страницы, которые pageA.html , pageB.html .

Я использую следующий код для перехода на следующую страницу и возврата к предыдущей странице

 // go to next page
function changePage(url) {
  $.mobile.pageContainer.pagecontainer("change", url, {
    allowSamePageTransition: true,
    transition: 'none',
    showLoadMsg: false,
    reloadPage: false,
    changeHash: true
  })
}

//back to previous page
function backToPreviousPage(){
  alert("back");
  history.back();
}
  

Коды работают нормально в первый раз, как показано ниже

Первый раз: страница> Страница (нажмите кнопку назад один раз)> Страница

Итак, я снова успешно вернулся к странице. И вот возникает проблема.

Второй раз: страница> Страница (сначала нажмите кнопку «Назад», ответа нет, затем нажмите второй раз)> Страница

Когда дело доходит до третьего раза, мне нужно нажать кнопку «Назад» 3 раза, только тогда можно запустить history.back(), я могу получить предупреждающее сообщение, поэтому вызывается функция backToPrevious .

итак, проблема такая, как показано ниже:

  • 1-я навигация: Страница> Страница> Страница (1 клик)
  • 2-й переход: Страница> Страница> Страница (2 клика)
  • 3-й навигационный переход: Страница> Страница> Страница (3 клика)

и так далее….

Я не могу просто жестко перейти обратно на страницу в функции backToPrevious, потому что я могу не только перейти на страницу с страницы, но и перейти на страницу с другой страницы.

До сих пор я пытался с этим

 history.back(-1);
  

и это

 <a data-rel="back" href="javascript:history.back(1)" data-theme="a">Back</a>
  

но все равно не могу решить проблему.

Буду признателен, если кто-нибудь скажет мне, что я делаю не так. Спасибо.

Ответ №1:

Просто используйте этот код.

    function changePage() {
     $.mobile.changePage("pageA.html");
     return false;
    }

    function backToPreviousPage(){
     navigator.app.backHistory();

    }
  

Комментарии:

1. извините, это моя ошибка, что я не даю полной информации о моей проблеме. PageB на самом деле является страницей с множественным доступом, что означает, что я могу перемещаться по странице с PageA, но также могу перемещаться по странице с pageZ. У вас есть какие-либо идеи по этому поводу?