Jquery mobile 如何从Jquery移动历史记录中删除当前页面?

Jquery mobile 如何从Jquery移动历史记录中删除当前页面?,jquery-mobile,browser-history,Jquery Mobile,Browser History,有没有办法从Jquery移动历史记录中删除当前页面(正在导航的页面)?设置changeHash:false似乎会从历史记录中删除传入页面 以下是一个例子: 第1页 <div data-role="page"> <div data-id="fixedheader" data-role="header" data-position="fixed"> <h1>Page 1</h1> </div> <div data-

有没有办法从Jquery移动历史记录中删除当前页面(正在导航的页面)?设置changeHash:false似乎会从历史记录中删除传入页面

以下是一个例子:

第1页

<div data-role="page">
  <div data-id="fixedheader" data-role="header" data-position="fixed">
    <h1>Page 1</h1>
  </div>
  <div data-role="content">
    <button onclick="$.mobile.changePage('page2.html',{changeHash:false});">Page 2</button>
  </div>
</div>

第1页
第2页
第2页

<div data-role="page">
  <div data-id="fixedheader" data-role="header" data-position="fixed">
    <h1>Page 2</h1>
  </div>
  <div data-role="content">
    <button onclick="$.mobile.changePage('page3.html',{changeHash:true});">Page 3</button>
  </div>
</div>

第2页
第3页
第3页

<div data-role="page">
  <div data-id="fixedheader" data-role="header" data-position="fixed" data-add-back-btn="true">
    <h1>Page 3</h1>
  </div>
  <div data-role="content"></div>
</div>

第3页
我想要的是,当在第3页上单击“上一步”按钮时,会转到第2页,并且不可能返回到第1页

发生的情况是,从第1页到第2页再到第3页单击,在第3页上的“后退”按钮直接返回到第1页


另外,如果我将数据添加回btn=“true”放在第2页上,它会显示一个后退按钮,但单击该按钮不会执行任何操作

假设您使用的是jQuery Mobile>1.4,您可以使用
$.Mobile.navigate.history.stack

如果您只想在从第1页->第2页导航时从历史记录中删除第1页,以下代码应该可以解决您的问题。此函数假定jQuery Mobile 1.4.3

$(document).on('pagecontainerchange', function(e, ui) {
      if ( ui.prevPage.attr('id') === 'first' && ui.toPage.attr('id')  === 'second' ) {
          var index = $.mobile.navigate.history.stack.length - 2;
          $.mobile.navigate.history.stack.splice(index, 1);
    }
});

它记录历史堆栈的状态

不确定为什么它不工作,因为我通常使用单击返回,但是尝试将(data url=“page2.html”)添加到标题中,看看是否有效。或者,只需添加(onclick=“$.mobile.changePage('page2.html',{changeHash:true});”)和删除(data add back btn=“true”)硬编码本例中转到第2页的按钮即可转到第2页,但这不是解决方案。在真正的应用程序中,1到3之间有任意数量的路径,它需要使用历史记录才能转到正确的页面。这也不是真正的后退,而是从第3页向前移动到第2页。同样在Android上,用户可以使用后退按钮浏览历史记录,这不会改变。您想从历史记录中删除哪个页面?第1页还是第2页?我希望流单击1到2到3。然后,当启用3时,后退按钮返回到2。2不显示后退按钮,因为1不在历史记录中。简单且不复杂的选项是在第一页的page2.html链接中添加
data ajax=“false”
。e、 g.
。我得检查一下。现在,我又转到了其他方面。谢谢你的提示。你好!这最终对我有效,但只是在我添加了另一行之后:>不知道为什么,只知道如果没有它,它会记录此错误:“无法读取未定义的属性哈希”