[英]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.