jquery mobile multi html返回第一页

时间:2015-10-16 10:26:26

标签: jquery cordova jquery-mobile

我正在使用以下代码初始化我的应用程序:

$(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();
    });
  });
});

因此,有不同的应用程序可以使用我的应用程序:

  1. app_options.html> home.html的
  2. app_options> more_options.html> home.html的
  3. home.html的
  4. 当我们进入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",
           }); 
        }
      }
    });
    
    你可以帮帮我吗?

0 个答案:

没有答案