删除JQuery Mobile历史记录中的第一页

时间:2014-04-09 08:38:09

标签: javascript jquery jquery-mobile cordova

我在jQuery Mobile中使用Cordova App。我的第一页是“正在加载”。页面,我下载App所需的所有数据。之后,App进入菜单。我想从历史记录中删除该加载页面。

我的问题是,据我所知,只有在使用$ .mobile.changePage(changehash = false)加载页面时,才能禁止在历史记录中插入页面。 我使用的是jqueryMovile-1.4.2& cordova 3.4.0。

有人知道解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:6)

您需要做两件事,从DOM中删除页面div以及导航历史记录。这可以通过监听pagecontainershow和读取ui.prevPage对象来完成,因为它包含上一页的数据(不是当前活动的数据)。

pagecontainershow触发时,请检查返回的ui.prevPage的类型,它不应该是undefined。如果是defined(表示您已从DOM中的第一页移至任何其他页面),则来自DOM .remove()的{​​{1}}。

$.mobile.navigate.history.stack这将删除urlHistory堆栈中的第一条记录。

$.mobile.navigate.history.stack.splice(0,1);
  

<强> Demo

答案 1 :(得分:-1)

您对changehash = false的问题是什么?

您应该在从加载页面转换到菜单时使用它。

这看起来很像我在自己的应用程序中所做的,除了我的案例历史由Backbone处理。

$.mobile.changePage($("#menuPage"), {changeHash: false});

从jquery 1.4开始,你不应再使用$ .mobile.changePage而是:

$("body").pagecontainer("change",$("#menuPage"), {changeHash: false});