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

poz*_*log 3 javascript jquery jquery-mobile cordova

我正在使用jQuery Mobile做Cordova应用程序.我的第一页是"正在加载"页面,我在这里下载App所需的所有数据.之后,App进入菜单.我想从历史记录中删除该加载页面.

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

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

Oma*_*mar 6

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

pagecontainershow火灾,检查返回的类型ui.prevPage,它不应该是undefined.如果是defined(意味着你已经从DOM的第一页移动到任何其他页面),那么.remove()从DOM和来自$.mobile.navigate.history.stack.

$.mobile.navigate.history.stack.splice(0,1); 这将删除urlHistory堆栈中的第一条记录.

$(document).on("pagecontainershow", function (e, ui) {
  if (typeof ui.prevPage[0] !== "undefined" && ui.prevPage[0].id == "pageID") {
    $.mobile.navigate.history.stack.splice(0,1);
    $(ui.prevPage).remove();
  }
});
Run Code Online (Sandbox Code Playgroud)

演示