【发布时间】:2014-08-28 14:52:07
【问题描述】:
有没有办法从 Jquery Mobile 历史记录中删除当前页面(导航离开的页面)?设置 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>
第 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>
第 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 页时,单击后退按钮会转到第 2 页,并且无法返回到第 1 页。
从第 1 页点击到第 2 页再到第 3 页,在第 3 页上的后退按钮直接返回到第 1 页。
此外,如果我将 data-add-back-btn="true" 放在第 2 页上,它会显示一个后退按钮,但单击它什么也不做。
【问题讨论】:
-
不确定为什么它不起作用,因为我通常使用点击返回,但是尝试将 (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 不在历史记录中。
-
简单的选项是添加
data-ajax="false"到首页的page2.html链接。例如<a href="page2.html" data-ajax="false" class="ui-btn">Page 2</a>.
标签: jquery-mobile browser-history