javascript - jquery mobile History.back() 仅在第一次时有效

标签 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(第一次点击后退按钮无 react ,再点击第二次)> pageA

当第三次时,我需要点击后退按钮3次,然后才能使history.back()起作用,我才能收到警报消息,因此调用backToPrevious函数。

所以问题如下:

  • 第一次导航:pageA > pageB > pageA(1 次点击)
  • 第二次导航:pageA > pageB > pageA(2次点击)
  • 第三次导航: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>

但仍然无法解决问题。

如果有人能告诉我我做错了什么,我将不胜感激。 谢谢。

最佳答案

只需使用此代码即可。

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

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

    }

关于javascript - jquery mobile History.back() 仅在第一次时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286172/

相关文章:

javascript - 从 javascript 发布到 ruby

javascript - 如何检测 jquery mobile 输入 slider 何时在 jquery 上移动?

php - 结合 jQuery 和 Zen-Coding php 端口以在服务器端脚本上模拟客户端编程风格

javascript - 使用 JavaScript/jQuery 的后退按钮

javascript - 与谷歌地图地理编码 API 斗争

javascript - 有没有办法排除规则而不影响我的 jQuery?

javascript - JQuery 每行多个输入字段 keyup 功能不起作用

javascript - jQuery mobile,在页面之间传递 radio 检查值

cordova - Jquery移动对话框不换页

javascript - 拖动多个选定元素