index.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. <!DOCTYPE html>
  2. <html lang=en>
  3. <head>
  4. <meta charset=utf-8>
  5. <meta http-equiv=X-UA-Compatible content="IE=edge">
  6. <meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
  7. <link rel=icon href=favicon.ico>
  8. <title>mcapp</title>
  9. <link href=css/chunk-07b50024.d51e2ae9.css rel=prefetch>
  10. <link href=css/chunk-0af3dc64.be1b0f72.css rel=prefetch>
  11. <link href=css/chunk-122c6c6c.9d82d287.css rel=prefetch>
  12. <link href=css/chunk-3cf2a9b8.16506133.css rel=prefetch>
  13. <link href=css/chunk-4ab99b8a.1c82d350.css rel=prefetch>
  14. <link href=css/chunk-4eed17c8.99fba9e3.css rel=prefetch>
  15. <link href=css/chunk-4f3fffd3.388767ee.css rel=prefetch>
  16. <link href=css/chunk-a104a9b0.5085da24.css rel=prefetch>
  17. <link href=css/chunk-a8127e4a.64ac433c.css rel=prefetch>
  18. <link href=css/chunk-f7b72af0.39afc156.css rel=prefetch>
  19. <link href=js/chunk-07b50024.a4e8c5d9.js rel=prefetch>
  20. <link href=js/chunk-0af3dc64.a2f2f578.js rel=prefetch>
  21. <link href=js/chunk-122c6c6c.f099ea79.js rel=prefetch>
  22. <link href=js/chunk-28294eeb.f8e3a165.js rel=prefetch>
  23. <link href=js/chunk-3cf2a9b8.bc76e349.js rel=prefetch>
  24. <link href=js/chunk-4ab99b8a.fcaa0cd1.js rel=prefetch>
  25. <link href=js/chunk-4eed17c8.4053cfc4.js rel=prefetch>
  26. <link href=js/chunk-4f3fffd3.8a63332c.js rel=prefetch>
  27. <link href=js/chunk-a104a9b0.4eda3945.js rel=prefetch>
  28. <link href=js/chunk-a8127e4a.44fa443e.js rel=prefetch>
  29. <link href=js/chunk-f7b72af0.bc08c6ec.js rel=prefetch>
  30. <link href=css/app.c82b86b3.css rel=preload as=style>
  31. <link href=css/chunk-vendors.29158c2b.css rel=preload as=style>
  32. <link href=js/app.93bea8da.js rel=preload as=script>
  33. <link href=js/chunk-vendors.310c4c21.js rel=preload as=script>
  34. <link href=css/chunk-vendors.29158c2b.css rel=stylesheet>
  35. <link href=css/app.c82b86b3.css rel=stylesheet>
  36. </head>
  37. <body>
  38. <noscript><strong>We're sorry but mcapp doesn't work properly without JavaScript enabled. Please enable it to
  39. continue.</strong></noscript>
  40. <div id=test style="width: 0;height: 0;"></div>
  41. <div id=app></div>
  42. <script src=js/chunk-vendors.310c4c21.js></script>
  43. <script src=js/app.93bea8da.js></script>
  44. </body>
  45. <script>/**函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。*/
  46. function ar_encode(str) {
  47. //进行URL编码
  48. return encodeURI(str);
  49. }
  50. /**屏幕分辨率*/
  51. function ar_get_screen() {
  52. var c = "";
  53. if (self.screen) {
  54. c = screen.width + "x" + screen.height;
  55. }
  56. return c;
  57. }
  58. /**颜色质量*/
  59. function ar_get_color() {
  60. var c = "";
  61. if (self.screen) {
  62. c = screen.colorDepth + "-bit";
  63. }
  64. return c;
  65. }
  66. /**返回当前的浏览器语言*/
  67. function ar_get_language() {
  68. var l = "";
  69. var n = navigator;
  70. if (n.language) {
  71. l = n.language.toLowerCase();
  72. } else if (n.browserLanguage) {
  73. l = n.browserLanguage.toLowerCase();
  74. }
  75. return l;
  76. }
  77. /**返回浏览器类型IE,Firefox*/
  78. function ar_get_agent() {
  79. var a = "";
  80. var n = navigator;
  81. if (n.userAgent) {
  82. a = n.userAgent;
  83. }
  84. return a;
  85. }
  86. /**方法可返回一个布尔值,该值指示浏览器是否支持并启用了Java*/
  87. function ar_get_jvm_enabled() {
  88. var j = "";
  89. var n = navigator;
  90. j = n.javaEnabled() ? 1 : 0;
  91. return j;
  92. }
  93. /**返回浏览器是否支持(启用)cookie */
  94. function ar_get_cookie_enabled() {
  95. var c = "";
  96. var n = navigator;
  97. c = n.cookieEnabled ? 1 : 0;
  98. return c;
  99. }
  100. /**检测浏览器是否支持Flash或有Flash插件*/
  101. function ar_get_flash_ver() {
  102. var f = "", n = navigator;
  103. if (n.plugins && n.plugins.length) {
  104. for (var ii = 0; ii < n.plugins.length; ii++) {
  105. if (n.plugins[ii].name.indexOf('Shockwave Flash') != -1) {
  106. f = n.plugins[ii].description.split('Shockwave Flash ')[1];
  107. break;
  108. }
  109. }
  110. } else if (window.ActiveXObject) {
  111. for (var ii = 10; ii >= 2; ii--) {
  112. try {
  113. var fl = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + ii + "');");
  114. if (fl) {
  115. f = ii + '.0';
  116. break;
  117. }
  118. } catch (e) {
  119. }
  120. }
  121. }
  122. return f;
  123. }
  124. /**匹配顶级域名*/
  125. function ar_c_ctry_top_domain(str) {
  126. var pattern = "/^aero$|^cat$|^coop$|^int$|^museum$|^pro$|^travel$|^xxx$|^com$|^net$|^gov$|^org$|^mil$|^edu$|^biz$|^info$|^name$|^ac$|^mil$|^co$|^ed$|^gv$|^nt$|^bj$|^hz$|^sh$|^tj$|^cq$|^he$|^nm$|^ln$|^jl$|^hl$|^js$|^zj$|^ah$|^hb$|^hn$|^gd$|^gx$|^hi$|^sc$|^gz$|^yn$|^xz$|^sn$|^gs$|^qh$|^nx$|^xj$|^tw$|^hk$|^mo$|^fj$|^ha$|^jx$|^sd$|^sx$/i";
  127. if (str.match(pattern)) {
  128. return 1;
  129. }
  130. return 0;
  131. }
  132. /**处理域名地址*/
  133. function ar_get_domain(host) {
  134. //如果存在则截去域名开头的 "www."
  135. var d = host.replace(/^www\./, "");
  136. //剩余部分按照"."进行split操作,获取长度
  137. var ss = d.split(".");
  138. var l = ss.length;
  139. //如果长度为3,则为xxx.yyy.zz格式
  140. if (l == 3) {
  141. //如果yyy为顶级域名,zz为次级域名,保留所有
  142. if (ar_c_ctry_top_domain(ss[1]) && ar_c_ctry_domain(ss[2])) {
  143. }
  144. //否则只保留后两节
  145. else {
  146. d = ss[1] + "." + ss[2];
  147. }
  148. }
  149. //如果长度大于3
  150. else if (l >= 3) {
  151. //如果host本身是个ip地址,则直接返回该ip地址为完整域名
  152. var ip_pat = "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$";
  153. if (host.match(ip_pat)) {
  154. return d;
  155. }
  156. //如果host后两节为顶级域名及次级域名,则保留后三节
  157. if (ar_c_ctry_top_domain(ss[l - 2]) && ar_c_ctry_domain(ss[l - 1])) {
  158. d = ss[l - 3] + "." + ss[l - 2] + "." + ss[l - 1];
  159. }
  160. //否则保留后两节
  161. else {
  162. d = ss[l - 2] + "." + ss[l - 1];
  163. }
  164. }
  165. return d;
  166. }
  167. /**返回cookie信息*/
  168. function ar_get_cookie(name) {
  169. //获取所有cookie信息
  170. var co = document.cookie;
  171. //如果名字是个空 返回所有cookie信息
  172. if (name == "") {
  173. return co;
  174. }
  175. //名字不为空 则在所有的cookie中查找这个名字的cookie
  176. var mn = name + "=";
  177. var b, e;
  178. b = co.indexOf(mn);
  179. //没有找到这个名字的cookie 则返回空
  180. if (b < 0) {
  181. return "";
  182. }
  183. //找到了这个名字的cookie 获取cookie的值返回
  184. e = co.indexOf(";", b + name.length);
  185. if (e < 0) {
  186. return co.substring(b + name.length + 1);
  187. } else {
  188. return co.substring(b + name.length + 1, e);
  189. }
  190. }
  191. /**
  192.         设置cookie信息
  193.         操作符:
  194.                 0 表示不设置超时时间 cookie是一个会话级别的cookie cookie信息保存在浏览器内存当中 浏览器关闭时cookie消失
  195.                 1 表示设置超时时间为10年以后 cookie会一直保存在浏览器的临时文件夹里 直到超时时间到来 或用户手动清空cookie为止
  196.                 2 表示设置超时时间为1个小时以后 cookie会一直保存在浏览器的临时文件夹里 直到超时时间到来 或用户手动清空cookie为止
  197. * */
  198. function ar_set_cookie(name, val, cotp) {
  199. var date = new Date;
  200. var year = date.getFullYear();
  201. var hour = date.getHours();
  202. var cookie = "";
  203. if (cotp == 0) {
  204. cookie = name + "=" + val + ";";
  205. } else if (cotp == 1) {
  206. year = year + 10;
  207. date.setYear(year);
  208. cookie = name + "=" + val + ";expires=" + date.toGMTString() + ";";
  209. } else if (cotp == 2) {
  210. hour = hour + 1;
  211. date.setHours(hour);
  212. cookie = name + "=" + val + ";expires=" + date.toGMTString() + ";";
  213. }
  214. var d = ar_get_domain(document.domain);
  215. if (d != "") {
  216. cookie += "domain=" + d + ";";
  217. }
  218. cookie += "path=" + "/;";
  219. document.cookie = cookie;
  220. }
  221. /**返回客户端时间*/
  222. function ar_get_stm() {
  223. return new Date().getTime();
  224. }
  225. /**返回指定个数的随机数字串*/
  226. function ar_get_random(n) {
  227. var str = "";
  228. for (var i = 0; i < n; i++) {
  229. str += String(parseInt(Math.random() * 10));
  230. }
  231. return str;
  232. }
  233. // 获取openId
  234. function ar_get_openId() {
  235. return window.sessionStorage.getItem("openId") === null ? "" : window.sessionStorage.getItem("openId")
  236. }
  237. // 获取openId
  238. function ar_get_userPhone() {
  239. return window.sessionStorage.getItem("userPhone") === null ? "" : window.sessionStorage.getItem("userPhone")
  240. }
  241. /* main function */
  242. function ar_main() {
  243. //收集完日志 提交到的路径
  244. var dest_path = "http://139.159.192.185:81/WebClient/servlet/LogServlet?";
  245. // var dest_path = "http://localhost:8090/WebClient/servlet/LogServlet?";
  246. var expire_time = 30 * 60 * 1000;//会话超时时长
  247. //处理uv
  248. //--获取cookie ar_stat_uv的值
  249. var uv_str = ar_get_cookie("ar_stat_uv");
  250. var uv_id = "";
  251. //--如果cookie ar_stat_uv的值为空
  252. if (uv_str == "") {
  253. //--为这个新uv配置id,为一个长度20的随机数字
  254. uv_id = ar_get_random(20);
  255. //--设置cookie ar_stat_uv 保存时间为10年
  256. ar_set_cookie("ar_stat_uv", uv_id, 1);
  257. }
  258. //--如果cookie ar_stat_uv的值不为空
  259. else {
  260. //--获取uv_id
  261. uv_id = uv_str;
  262. }
  263. //处理ss
  264. //--获取cookie ar_stat_ss
  265. var ss_stat = ar_get_cookie("ar_stat_ss");
  266. var ss_id = ""; //sessin id
  267. var ss_count = 0; //session有效期内访问页面的次数
  268. var ss_time = "";
  269. //--如果cookie中不存在ar_stat_ss 说明是一次新的会话
  270. if (ss_stat == "") {
  271. //--随机生成长度为10的session id
  272. ss_id = ar_get_random(10);
  273. //--session有效期内页面访问次数为0
  274. ss_count = 0;
  275. //--当前事件
  276. ss_time = ar_get_stm()
  277. } else { //--如果cookie中存在ar_stat_ss
  278. //获取ss相关信息
  279. var items = ss_stat.split("_");
  280. //--ss_id
  281. ss_id = items[0];
  282. //--ss_count
  283. ss_count = parseInt(items[1]);
  284. //--ss_stm
  285. ss_time = items[2];
  286. //如果当前时间-当前会话上一次访问页面的时间>30分钟,虽然cookie还存在,但是其实已经超时了!仍然需要重新生成cookie
  287. if (ar_get_stm() - ss_time > expire_time) {
  288. //--重新生成会话id
  289. ss_id = ar_get_random(10);
  290. //--设置会话中的页面访问次数为0
  291. ss_count = 0;
  292. //--当前事件
  293. ss_time = ar_get_stm();
  294. } else {//--如果会话没有超时
  295. //--会话id不变
  296. //--设置会话中的页面方位次数+1
  297. ss_count = ss_count + 1;
  298. ss_time = ar_get_stm();
  299. }
  300. }
  301. //--重新拼接cookie ar_stat_ss的值
  302. value = ss_id + "_" + ss_count + "_" + ss_time;
  303. ar_set_cookie("ar_stat_ss", value, 0);
  304. //当前地址
  305. var url = document.URL;
  306. url = ar_encode(String(url));
  307. //当前资源名
  308. var urlname = document.URL.substring(document.URL.lastIndexOf("/") + 1);
  309. urlname = ar_encode(String(urlname));
  310. //返回导航到当前网页的超链接所在网页的URL
  311. var ref = document.referrer;
  312. ref = ar_encode(String(ref));
  313. //网页标题
  314. var title = document.title;
  315. title = ar_encode(String(title));
  316. //网页字符集
  317. var charset = document.charset;
  318. charset = ar_encode(String(charset));
  319. //屏幕信息
  320. var screen = ar_get_screen();
  321. screen = ar_encode(String(screen));
  322. //颜色信息
  323. var color = ar_get_color();
  324. color = ar_encode(String(color));
  325. //语言信息
  326. var language = ar_get_language();
  327. language = ar_encode(String(language));
  328. //浏览器类型
  329. var agent = ar_get_agent();
  330. agent = ar_encode(String(agent));
  331. //浏览器是否支持并启用了java
  332. var jvm_enabled = ar_get_jvm_enabled();
  333. jvm_enabled = ar_encode(String(jvm_enabled));
  334. //浏览器是否支持并启用了cookie
  335. var cookie_enabled = ar_get_cookie_enabled();
  336. cookie_enabled = ar_encode(String(cookie_enabled));
  337. //浏览器flash版本
  338. var flash_ver = ar_get_flash_ver();
  339. flash_ver = ar_encode(String(flash_ver));
  340. // openId
  341. var openId = ar_get_openId();
  342. openId = ar_encode(String(openId));
  343. // userPhone
  344. var userPhone = ar_get_userPhone();
  345. userPhone = ar_encode(String(userPhone));
  346. //当前ss状态 格式为"会话id_会话次数_当前时间"
  347. // var stat_ss = ss_id + "_" + ss_count + "_" + ss_time;
  348. //拼接访问地址 增加如上信息
  349. var dest = dest_path + "url=" + url + "&urlname=" + urlname + "&title=" + title + "&chset=" + charset + "&scr=" + screen + "&col=" + color +
  350. "&lg=" + language + "&je=" + jvm_enabled + "&ce=" + cookie_enabled + "&fv=" + flash_ver + "&ref=" +
  351. ref + "&uagent=" + agent + "&uv_id=" + uv_id + "&ss_id=" + ss_id + "&ss_count=" + ss_count +
  352. "&ss_time=" + ss_time + "&openId=" + openId + "&userPhone=" + userPhone;
  353. //通过插入图片访问该地址
  354. document.getElementById("test").innerHTML += "<img src=\"" + dest + "\" border=\"0\" width=\"1\" height=\"1\" />";
  355. }
  356. ar_main();
  357. // window.onload = function () {
  358. // //触发main方法
  359. // ar_main();
  360. // }</script>
  361. </html>