main.js
3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
define("main", [
"mobilebone",
"mobilemode",
'main/log',
"permission/pageview",
"zepto",
"Component",
"mApi",
"mService",
"i18n"
], function (Mobilebone, mobilemode, logger, permission) {
// 参数黑名单
var backlist_param = [
// Emobile自带参数
"clientos",
"viewmodule",
"ipaddress",
"clientosver",
"clientlevel",
"_isShowTerminal_",
"_hrmorder_",
//Emobile自带参数, 微信自带参数
"sessionkey",
"clienttype",
"clientver",
"serverver",
// 微信自带参数
"scope",
"outsysId",
"dd_share",
"fromebdataidtype",
"targetoutsysid",
"fromebdataid",
"eb_auth_outsysid",
"eb_auth_agentid",
"eb_client_ipaddress",
"eb_auth_corptype",
// EM7 自带参数
"moduleid",
"outsysid",
"em_client_type",
"em_auth_code",
// 移动建模页面参数
'appid',
'mToken',
'mTokenFrom',
'appHomepageId',
];
var mUtil = require("mUtil");
var com = require("Component");
var i18n = require("i18n");
var _init = function (pageContent) {
var meta = window.__meta__;
//首页标题
meta.appname && (pageContent = pageContent.replace(new RegExp("<div[^>]*id\\s*=\\s*['|\"]"+meta.appHomepageId+"['|\"][^>]*>", "i"), function(match){
var titleMatch = /data-title\s*=([\S\s]+)class/i.exec(match);
if (titleMatch) {
var dataTitle = 'data-title="' + meta.appname + '" class';
match = match.replace(titleMatch[0], dataTitle);
}
return match;
}));
//替换页面中的多语言
pageContent = com.replaceMutilLanguage(pageContent, mUtil.getUserLanguage());
$(document.body).append(pageContent);
Mobilebone.rootTransition = mobilemode;
Mobilebone.evalScript = true;
Mobilebone.mergeCallback = false;
Mobilebone.onpagefirstinto = mobilemode.pageInit;
Mobilebone.callback = mobilemode.pageChange;
logger.init();
permission.init();
i18n.init(mUtil.getUserLanguage());
initMobilebone();
};
function getFormdata() {
var params = decodeURIComponent(location.search).replace(/^\?/g, '');
var paramsArr = params.match(/([^&]*?)=(.*?)(?=&|&?$)/g) || [];
var compliants = paramsArr.filter(function (paramStr) {
var arr = paramStr.split('=');
var key = arr[0];
return !~backlist_param.indexOf(key);
});
return compliants.map(function (m) {
// 兼容 参数为_mm_xxx=x的情况
return m.replace(/^_mm_/g, "");
}).join("&");
}
function initMobilebone() {
var pageid = mUtil.getCurrentPageId();
var hash = location.hash.replace("#&", "#");
var matches = hash.match(/page_service.*?_(page_\d+)/);
var isPageServiceHash = matches && 2 === matches.length;
if (isPageServiceHash) {
pageid = matches[1];
}
// 需要提前back,用于获取Formdata
isPageServiceHash && history.back();
setTimeout(function () {
Mobilebone.init(pageid, {
reload: true,
formdata: getFormdata(),
forceDefaultPage: isPageServiceHash
});
});
}
if(typeof main_mmsrcHtml !== "undefined") return _init(main_mmsrcHtml);
window.Loader.onHtmlLoaded = _init;
});