【问题标题】:jquery mobile history.back() only work for first timejquery mobile history.back() 仅适用于第一次
【发布时间】:2014-06-18 12:55:11
【问题描述】:

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

我有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 次点击)
  • 第三次导航:pageA > pageB > pageA(3 次点击)

等等……

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

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

history.back(-1);

还有这个

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

但仍然无法解决问题。

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

【问题讨论】:

    标签: javascript jquery jquery-mobile cordova


    【解决方案1】:

    只需使用此代码。

       function changePage() {
         $.mobile.changePage("pageA.html");
         return false;
        }
    
        function backToPreviousPage(){
         navigator.app.backHistory();
    
        }
    

    【讨论】:

    • 对不起,我的错误是我的问题没有提供完整的细节。 pageB 实际上是一个多访问页面,这意味着我可以从 pageA 导航 pageB,也可以从 pageZ 导航 pageB。你有什么想法吗?
    猜你喜欢
    • 2013-05-26
    • 2015-09-07
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2023-04-03
    • 2011-09-29
    • 2021-02-12
    相关资源
    最近更新 更多