我正在使用以下代码初始化我的应用程序:
$(document).on("mobileinit", function() {
$.extend($.mobile, {
hashListeningEnabled: true,
pushStateEnabled: true
});
$.mobile.autoInitializePage = false;
var userApplicationContext = loadPreference("userApplicationContext");
$(function() {
$("body").load(userApplicationContext == null ? "app_options.html [data-role=page]" : "home.html [data-role=page]", function(data) {
$.mobile.initializePage();
});
});
});
因此,有不同的应用程序可以使用我的应用程序:
当我们进入home.html时,userApplicationContext不再为null。
我想回到home.html,无论你从当前页面跟随什么路径(理想情况下从历史中删除中间页面)。
因为我在 mobileinit 上加载了不同的页面,所以我尝试使用此代码来实现此行为,但没有成功。
$( document ).on( "pagecontainerbeforechange", function ( ev, data ){
var toPage = data.toPage ? data.toPage : "",
prevPage = data.prevPage ? data.prevPage : "",
options = data.options,
absUrl = data.absUrl ? $.mobile.path.parseUrl(data.absUrl).filename : "";
var previousId = prevPage != "" && typeof prevPage !== "string" ? prevPage.attr('id') : null;
var toId = toPage != "" && typeof toPage !== "string" ? toPage.attr('id') : toPage;
if ( typeof toPage == "string" && data.options.direction == 'back') {
if (toId != 'page-home' && (previousId == 'p1' || previousId == 'p2' || previousId == 'p3' || previousId == 'p4')) {
data.toPage = $.mobile.firstPage.attr('id') == 'page-app-options' ? "home.html" : "#page-home";
$.extend( data.options, {
transition: "flip",
});
}
}
});
你可以帮帮我吗?