main.js 2.02 KB
define("main_demo", [
    "mobilebone",
    "fastclick",
    "mUtil",
    "i18n",
    "zepto",
    "Component",
    "mApi",
    "pageEvent",
    "pageStack"
], function (Mobilebone, FastClick, mUtil, i18n) {
    var pageEvent = require("pageEvent");

    FastClick.attach(document.body);
    Mobilebone.evalScript = true;
    Mobilebone.onpagefirstinto = function (page, pageOut, options) {
        var pageid = page.id;
        var pageIntId = mUtil.getPageIntId(pageid);
        var params = { "pageKey": mUtil.UUID() + "_" + pageIntId };
        var pArr = (options.formdata || "").split("&");

        pArr.forEach(function (pStr) {
            var pIndex = pStr.indexOf("=");

            if (pIndex != -1) {
                var pName = pStr.substring(0, pIndex);
                var pValue = pStr.substring(pIndex + 1);

                params[pName] = pValue;
            }
        });

        mUtil.setPageParam(pageid, params);
    };
    Mobilebone.callback = function (pageInto, pageOut, options, back){
        if (back) {
            //返回时包含tab页获取当前页
            var tabpanel = $(pageInto).children(".page-content").children(".tabpanel.in")[0];
            tabpanel && (pageInto = tabpanel);
        }

        var pageid = pageInto.id,
            pageOutId = pageOut && pageOut.id;

        var stack = require("pageStack");

        if (pageInto.classList.contains("page-scroller")) {
            pageid = pageid.replace("_scroller", "");
        }
        
        var isTabChange = $(pageInto).hasClass("tabpanel") && $(pageOut).hasClass("tabpanel");
        if (!isTabChange) {//非标签栏tab之间切换
            if (!options.replaceState) {
                !back && stack.push(pageInto) || stack.pop(pageid);
            } else {
                stack.pop();
                stack.push(pageInto);
            }
        }

        pageOutId && mUtil.unload(pageOutId);
        mUtil.setCurrentPageId(pageid);
        pageEvent.trigger("change");
    };
    i18n.init(mUtil.getUserLanguage());
    Mobilebone.init();
});