jquery mobile history.back()仅适用于第一次

时间:2014-06-18 12:55:11

标签: javascript jquery jquery-mobile cordova

目前我遇到了历史问题。回()。

我有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();
}

代码第一次正常工作,如下面的流程

第一次:pageA> pageB(点击后退按钮一次)> pageA的

所以我又成功回到了pageA。问题来了。

第二次:pageA> pageB(首先点击后退按钮无响应,然后再点击第二次)> pageA的

说到第三次,我需要点击后退按钮3次然后只能使history.back()工作,我可以得到警告信息,所以调用backToPrevious函数。

所以问题如下:

  • 第一次导航:pageA> pageB> pageA(1次点击)
  • 第二次导航:pageA> pageB> pageA(2次点击)
  • 3rd naviagate:pageA> pageB> pageA(3次点击)

依旧......

我不能硬编码导航回backToPrevious函数中的pageA,因为我不仅可以从pageA导航到pageB,还可以从其他页面导航pageB。

到目前为止,我已尝试过这个

history.back(-1);

和这个

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

但仍无法解决问题。

感谢是否有人能告诉我我做错了什么。 谢谢。

1 个答案:

答案 0 :(得分:0)

只需使用此代码。

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

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

    }