簡體   English   中英

刪除JQuery Mobile歷史記錄中的第一頁

[英]Delete first page in JQuery Mobile history

我正在使用jQuery Mobile做Cordova應用程序。 我的第一頁是“正在加載”頁面,我在這里下載App所需的所有數據。 之后,App進入菜單。 我想從歷史記錄中刪除該加載頁面。

我的問題是,據我所知,只有在使用$ .mobile.changePage(changehash = false)加載頁面時,才能禁止在歷史記錄中插入頁面。 我正在使用jqueryMovile-1.4.2&cordova 3.4.0。

有人知道解決這個問題的方法嗎?

您需要做兩件事,從DOM中刪除頁面div以及導航歷史記錄。 這可以通過傾聽來完成pagecontainershow和閱讀ui.prevPage對象,因為它擁有前一頁(不是當前的活動之一)的數據。

pagecontainershow觸發時,檢查返回的ui.prevPage的類型,它不應該是undefined 如果在此階段defined (表示您已從DOM中的第一頁移動到任何其他頁面),則從DOM中$.mobile.navigate.history.stack .remove()和從$.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();
  }
});

演示

你有什么問題,changehash = false?

您應該在從加載頁面轉換到菜單時使用它。

這看起來很像我在自己的應用程序中所做的,除了我的案例歷史由Backbone處理。

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

從jquery 1.4開始,你不應該再使用$ .mobile.changePage而是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM