hnatao
hnatao
  • 发布:2014-10-10 13:43
  • 更新:2014-10-10 14:35
  • 阅读:5769

mui.back()方法是否重复定义了?

分类:MUI
mui

在mui.js中,有这样一段代码,同时定义了$.back,不知道是否定义重复了,或者是应该怎么使用,求教?

{{{

/**

  • mui back
  • @param {type} $
  • @param {type} window
  • @returns {undefined}
    */
    (function($, window) {
    /**
    • 后退
      */
      $.back = function() {
      if (window.history.length > 1) {
      if (typeof $.options.back === 'function') {
      if ($.options.back() !== false) {
      window.history.back();
      }
      } else {
      window.history.back();
      }
      }
      };
      window.addEventListener('tap', function(e) {
      var action = $.targets.action;
      if (action && action.classList.contains('mui-action-back')) {
      $.back();
      }
      });
      window.addEventListener('swiperight', function(e) {
      var detail = e.detail;
      if (detail.angle > -15 && detail.angle < 15 && $.options.swipeBack === true) {
      $.back();
      }
      });

})(mui, window);
/**

  • mui back 5+
  • @param {type} $
  • @param {type} window
  • @returns {undefined}
    */
    (function($, window) {
    /**

    • 后退(5+关闭当前窗口)
      */
      $.back = function() {
      var isBack = true;
      var callback = false;
      if (typeof $.options.back === 'function') {
      callback = $.options.back();
      if (callback === false) {
      isBack = false;
      }
      }
      if (!isBack) {
      return;
      }
      if (window.plus) {
      var wobj = $.currentWebview;
      var parent = wobj.parent();
      if (parent) {
      wobj = parent;
      }
      wobj.canBack(function(e) {
      //by chb 暂时注释,在碰到类似popover之类的锚点的时候,需多次点击才能返回;
      if (e.canBack) { //webview history back
      window.history.back();
      } else { //webview close or hide
      //TODO 会不会存在多层嵌套?如果存在需要递归找到最顶层

              var opener = wobj.opener();  
              if (opener) {  
                  //by chb 暂不自动处理老页面的隐藏;  
                  // var openerParent = opener.parent();  
                  // if (openerParent) {  
                  //  opener = openerParent;  
                  // }  
                  if (wobj.preload) {  
                      wobj.hide("auto");  
                  } else {  
                      //关闭页面时,需要将其打开的所有子页面全部关闭;  
                      $.closeAll(wobj);  
                  }  
                  //TODO 暂时屏蔽父窗口的隐藏与显示,与预加载一起使用时太多bug  
                  //opener.show();  
              } else {  
                  //首页不存在opener的情况下,后退实际上应该是退出应用;  
                  //这个交给项目具体实现,框架暂不处理;  
                  //plus.runtime.quit();  
              }  
          }  
      });  

      } else if (window.history.length > 1) {
      window.history.back();
      } else {
      window.close();
      }
      };

    $.plusReady(function() {
    plus.key.addEventListener('backbutton', function() {
    $.back();
    }, false);

    });

})(mui, window);

}}}

2014-10-10 13:43 负责人:无 分享
已邀请:
DCloud_UNI_CHB

DCloud_UNI_CHB

第一个mui.back是为将来单独在普通mobile浏览器上运行准备的,第二个mui.back是为客户端准备的(同时包含了普通浏览器);

mui将来可能会针对特定场景发布不同版本的编译包;

hnatao

hnatao (作者)

明白了

该问题目前已经被锁定, 无法添加新回复