command.js 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380
  1. var maxError=100;
  2. var errorCount=0;
  3. window.onerror=function(sMsg,sUrl,sLine){
  4. //alert(sLine);
  5. return;
  6. }
  7. function callAjax(values){
  8. //type:提交方式(post/get)
  9. //url:提交地址
  10. //callBackAjaxSuccess:成功返回回调方法
  11. //callBackSuccess:返回success回调方法
  12. //callBackError:返回error回调方法
  13. //callBackNothing:返回nothing回调方法
  14. //callBackOff:返回off回调方法
  15. //callBackNull:返回null调方法
  16. //data:提交参数,dataType:定义返回数据格式
  17. if(values=='' || !values){
  18. return false;
  19. }
  20. if(values.type==''){
  21. return false;
  22. }
  23. if(values.url==''){
  24. return false;
  25. }
  26. if(!values.callBackAjaxSuccess){
  27. values.callBackAjaxSuccess=function(){};
  28. }
  29. if(!values.callBackSuccess){
  30. values.callBackSuccess=function(){};
  31. }
  32. if(!values.callBackNull){
  33. values.callBackNull=function(){};
  34. }
  35. if(!values.callBackError){
  36. values.callBackError=function(){};
  37. }
  38. if(!values.callBackNothing){
  39. values.callOff=function(){
  40. pageError();
  41. };
  42. }
  43. if(!values.callOff){
  44. values.callOff=function(){
  45. pageError();
  46. };
  47. }
  48. if(!values.dataType){
  49. values.dataType='';
  50. }
  51. if(!values.data){
  52. values.data=null;
  53. }
  54. var callBackFail=function(){
  55. try{
  56. if(timeOutState){
  57. pageError();
  58. }else{
  59. pageError();
  60. }
  61. }catch(e){}
  62. };
  63. var bodyObj = document.body;//页面body节点对象
  64. var loadingBox = document.createElement("div");//Loading对象
  65. if(values.loadingBox!='no'){
  66. bodyObj.appendChild(loadingBox);//新建的对象加入页面
  67. //loadingBox.innerHTML='<div class="loader" id="loadingId"><div class="loading"><div class="dot"></div><div class="dot"></div><div class="dot"></div><div class="dot"></div><div class="dot"></div></div></div>';
  68. loadingBox.innerHTML='<div class="loader" id="loadingId"><div class="loading" style="background:rgba(0,0,0,0.5); color:#fff; line-height:68px;">加载中...</div></div>';
  69. loadingBox.id="loadingBox_by_gzy_Ajax";
  70. loadingBox.className="loadingBox";
  71. loadingBox.style.height=document.documentElement.clientHeight+'px';
  72. }
  73. var serverUrl='http://'+location.hostname;//获取服务器域名
  74. if(location.port!=''){
  75. serverUrl+=":"+location.port;
  76. }
  77. var xmlhttp;
  78. var sendDate=function(){//格式化提交参数
  79. var data='';
  80. for(var item in values.data){
  81. data+=item+'='+encodeURIComponent(values.data[item])+'&';
  82. }
  83. data=data.substr(0,data.length-1);
  84. return data;
  85. }
  86. var timeOut=30000;//超时时间
  87. var ajaxTimeOut;//定义超时计时器
  88. var timeOutState=false;//超时状态
  89. loadXMLAjax();//ajax请求
  90. function loadXMLAjax(){
  91. xmlhttp=null;
  92. if (window.XMLHttpRequest){// code for Firefox, Mozilla, IE7, etc.
  93. xmlhttp=new XMLHttpRequest();
  94. }else if (window.ActiveXObject){// code for IE6, IE5
  95. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  96. }
  97. values.url+='?rndNum='+Math.ceil(Math.random()*1000000);
  98. if (xmlhttp!=null){
  99. xmlhttp.onreadystatechange=state_Change;
  100. if(values.type=='post' || values.type=='POST'){//post请求
  101. xmlhttp.open("POST",values.url,true);
  102. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  103. xmlhttp.send(sendDate());
  104. }else{//get请求
  105. xmlhttp.open("GET",values.url+'&'+sendDate(),true);
  106. xmlhttp.send(null);
  107. }
  108. ajaxTimeOut=setTimeout(function(){
  109. timeOutState=true;
  110. callBackFail();
  111. try{
  112. bodyObj.removeChild(loadingBox);
  113. }catch(e){}
  114. },timeOut);
  115. }else{
  116. //callBackFail();
  117. try{
  118. bodyObj.removeChild(loadingBox);
  119. }catch(e){}
  120. }
  121. }
  122. function state_Change(){//监听请求状态
  123. if (xmlhttp.readyState==4){// 4 = "loaded"
  124. if (xmlhttp.status==200){// 200 = "OK"
  125. try{
  126. bodyObj.removeChild(loadingBox);
  127. }catch(e){}
  128. if(timeOutState){//如果已经超时就跳出方法
  129. return false;
  130. }
  131. clearTimeout(ajaxTimeOut);
  132. var header=xmlhttp.getAllResponseHeaders();
  133. if(header.search(/json/i)){//返回的是json则格式化json
  134. e=eval('(' +xmlhttp.responseText+ ')');
  135. }else{
  136. try{
  137. e=eval('(' +xmlhttp.responseText+ ')');
  138. }catch(e){}
  139. }
  140. if(e.code=='error'){
  141. values.callBackError(e);
  142. return;
  143. }
  144. if(e.code=='off'){
  145. values.callBackOff(e);
  146. return;
  147. }
  148. if(e.code=='nothing'){
  149. values.callBackNothing(e);
  150. return;
  151. }
  152. if(e.code=='success'){
  153. values.callBackSuccess(e);
  154. return;
  155. }
  156. values.callBackAjaxSuccess(e);
  157. }else{
  158. callBackFail();
  159. try{
  160. bodyObj.removeChild(loadingBox);
  161. }catch(e){}
  162. }
  163. }
  164. }
  165. }
  166. function addScriptTag(src){
  167. var script = document.createElement('script');
  168. script.setAttribute("type","text/javascript");
  169. if(src.indexOf('?')){
  170. src+='&rndNum='+Math.ceil(Math.random()*1000000);
  171. }else{
  172. src+='?rndNum='+Math.ceil(Math.random()*1000000);
  173. }
  174. script.src =encodeURI(src);
  175. document.body.appendChild(script);
  176. }
  177. function GetParam(e){//通过名称获取url传值方法
  178. /*
  179. *e:key名字
  180. */
  181. var url = document.location.href;
  182. var name="";
  183. e+='=';
  184. if (url.indexOf(e)>0){
  185. name = url.substring(url.indexOf(e)+e.length,url.length);
  186. }
  187. if(name.indexOf('&')>0){
  188. name = name.substring(0,name.indexOf('&'));
  189. }
  190. return name;
  191. }
  192. function getNow(){//获取当前时间
  193. var myDate = new Date();
  194. var h=myDate.getHours(); //获取当前小时数(0-23)
  195. var m=myDate.getMinutes(); //获取当前分钟数(0-59)
  196. var s=myDate.getSeconds(); //获取当前秒数(0-59)
  197. return h+':'+m+':'+s;
  198. }
  199. function getUrl(){//获取主机地址
  200. var serverUrl='http://'+location.hostname;//获取服务器域名
  201. if(location.port!=''){
  202. serverUrl+=":"+location.port;
  203. }
  204. return serverUrl;
  205. }
  206. function setCookie(c_name,value,expiredays){//设置cookie
  207. /*
  208. *c_name:cookie key名字
  209. *value:cookie 值
  210. *expiredays:过期时间(天)
  211. */
  212. var exdate=new Date();
  213. exdate.setDate(exdate.getDate()+expiredays);
  214. document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
  215. }
  216. function getCookie(c_name){//读取cookie
  217. /*
  218. *c_name:cookie key名称
  219. */
  220. if(document.cookie.length>0){
  221. c_start=document.cookie.indexOf(c_name + "=");
  222. if (c_start!=-1){
  223. c_start=c_start + c_name.length+1;
  224. c_end=document.cookie.indexOf(";",c_start);
  225. if (c_end==-1){
  226. c_end=document.cookie.length;
  227. }
  228. return unescape(document.cookie.substring(c_start,c_end));
  229. }
  230. }
  231. return "";
  232. }
  233. function setSessionStronge(s_name,value){
  234. if(window.sessionStorage){//支持本地缓存
  235. sessionStorage[s_name]=value;
  236. }else{//不支持本地缓存
  237. setCookie(s_name,value,3600000);
  238. }
  239. }
  240. function getSessionStronge(s_name){
  241. var value;
  242. if(window.sessionStorage){//支持本地缓存
  243. value=sessionStorage[s_name];
  244. }else{//不支持本地缓存
  245. value=getCookie(s_name);
  246. }
  247. return value;
  248. }
  249. function isChn(str){//验证中文名字
  250. /*
  251. *str:用户姓名
  252. */
  253. var reg = /^[\u4E00-\u9FA5]{2,8}$/;
  254. if(!reg.test(str)){
  255. return false;
  256. }
  257. return true;
  258. }
  259. function isIntNumber(str){//是否为整数
  260. /*
  261. *str:数字字符
  262. */
  263. var myreg = /^([0-9]+)*[0-9]$/;
  264. if(!myreg.test(str)){
  265. return false;
  266. }
  267. return true;
  268. }
  269. function isMobileNumber(str){//验证手机号码格式
  270. /*
  271. *str:手机号码
  272. */
  273. if(!isIntNumber(str)){
  274. return false;
  275. }
  276. if(str.length!=11){
  277. return false;
  278. }
  279. var regMobileStr=new Array('13','14','15','170','18');
  280. var mobileState=0;
  281. for(var i=0;i<regMobileStr.length;i++){
  282. if(str.indexOf(regMobileStr[i])==0){
  283. mobileState=1;
  284. break;
  285. }
  286. }
  287. if(mobileState==0){
  288. return false;
  289. }
  290. return true;
  291. }
  292. function isEmail(str){//验证email格式
  293. /*
  294. *str:email地址
  295. */
  296. var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  297. if(!myreg.test(str)){
  298. return false;
  299. }
  300. return true;
  301. }
  302. function isUserName(str){//用户名不能存在特殊字符
  303. /*
  304. *str:用户姓名
  305. */
  306. var myreg = /^([a-zA-Z\u4E00-\u9FA5]+)*[a-zA-Z\u4E00-\u9FA5]{2,11}$/;
  307. if(!myreg.test(str)){
  308. return false;
  309. }
  310. return true;
  311. }
  312. function checkIdcard(num){
  313. num = num.toUpperCase();
  314. //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
  315. if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))
  316. {
  317. //alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。');
  318. return false;
  319. }
  320. //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
  321. //下面分别分析出生日期和校验位
  322. var len, re;
  323. len = num.length;
  324. if (len == 15)
  325. {
  326. re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
  327. var arrSplit = num.match(re);
  328. //检查生日日期是否正确
  329. var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
  330. var bGoodDay;
  331. bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
  332. if (!bGoodDay)
  333. {
  334. //alert('输入的身份证号里出生日期不对!');
  335. return false;
  336. }
  337. else
  338. {
  339. //将15位身份证转成18位
  340. //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
  341. var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
  342. var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
  343. var nTemp = 0, i;
  344. num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
  345. for(i = 0; i < 17; i ++)
  346. {
  347. nTemp += num.substr(i, 1) * arrInt[i];
  348. }
  349. num += arrCh[nTemp % 11];
  350. return true;
  351. }
  352. }
  353. if (len == 18)
  354. {
  355. re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
  356. var arrSplit = num.match(re);
  357. //检查生日日期是否正确
  358. var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
  359. var bGoodDay;
  360. bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
  361. if (!bGoodDay)
  362. {
  363. //alert(dtmBirth.getYear());
  364. //alert(arrSplit[2]);
  365. //alert('输入的身份证号里出生日期不对!');
  366. return false;
  367. }
  368. else
  369. {
  370. //检验18位身份证的校验码是否正确。
  371. //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
  372. var valnum;
  373. var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
  374. var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
  375. var nTemp = 0, i;
  376. for(i = 0; i < 17; i ++)
  377. {
  378. nTemp += num.substr(i, 1) * arrInt[i];
  379. }
  380. valnum = arrCh[nTemp % 11];
  381. if (valnum != num.substr(17, 1))
  382. {
  383. //alert('18位身份证的校验码不正确!应该为:' + valnum);
  384. return false;
  385. }
  386. return true;
  387. }
  388. }
  389. return false;
  390. }
  391. function isUrl(str){
  392. var RegUrl = new RegExp();
  393. RegUrl.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
  394. if (!RegUrl.test(str)) {
  395. return false;
  396. }
  397. return true;
  398. }
  399. function getDomNode(nodeData){//获取节点对象列表
  400. /*
  401. *nodeData:节点对象
  402. */
  403. var html='';
  404. for(var item in nodeData){
  405. html+=item+'<br>';
  406. }
  407. return html;
  408. }
  409. function shareWeibo(type, title, url, pic){//分享微博
  410. /*
  411. *type:选择平台
  412. *title:分享标题
  413. *url:分享url
  414. *pic:分享图片地址
  415. */
  416. switch (type) {
  417. case 'sina' :
  418. var linkstr = "http://v.t.sina.com.cn/share/share.php?"
  419. if (title) linkstr += "title=" + title + "&";
  420. if (url) linkstr += "url=" + url + "&";
  421. if (pic) linkstr += "pic=" + pic;
  422. //window.location = linkstr;
  423. window.open(linkstr);
  424. break;
  425. case "tencent" :
  426. break;
  427. case "renren" :
  428. break;
  429. }
  430. }
  431. function getPass(len){//获取随机字母字符串
  432. /*
  433. *len:生成字符串长度
  434. */
  435. var tmpCh = "";
  436. for(var i = 0; i < len; i++){
  437. if(Math.floor( Math.random() * 2)==0){
  438. tmpCh += String.fromCharCode(Math.floor( Math.random() * 26) + "a".charCodeAt(0));
  439. }else if(Math.floor( Math.random() * 2)==0){
  440. tmpCh += String.fromCharCode(Math.floor( Math.random() * 26) + "A".charCodeAt(0));
  441. }else{
  442. tmpCh += String.fromCharCode(Math.floor( Math.random() * 10) + "0".charCodeAt(0));
  443. }
  444. }
  445. return tmpCh;
  446. }
  447. function removeEventHandlers(e){
  448. touchBox=document.getElementById(e);
  449. try{
  450. touchBox.removeEventListener("touchstart", function(){}, false);
  451. touchBox.removeEventListener("touchmove", function(){}, false);
  452. touchBox.removeEventListener("touchend", function(){}, false);
  453. touchBox.removeEventListener("onmousedown", function(){}, false);
  454. touchBox.removeEventListener("onmousemove", function(){}, false);
  455. touchBox.removeEventListener("onmouseup", function(){}, false);
  456. }catch(e){}
  457. }
  458. function AddEventHandlers(values){//节点加载touch方法
  459. /*
  460. *node:对象ID
  461. *tyle:0(输出屏幕坐标),1(相对节点坐标)
  462. *clickEvent:on/off,是否支持click事件
  463. *eventStart:touchstart时执行方法,参数返回回调触摸缓存坐标
  464. *eventMove:touchmove时执行方法,参数返回回调触摸缓存坐标
  465. *eventEnd:touchend时执行方法,参数返回触摸缓存坐标
  466. *lockEvent:是否锁定事件on/off默认锁定
  467. */
  468. if(!values.node){
  469. return false;
  470. }
  471. if(!values.type){
  472. values.type=0;
  473. }
  474. if(!values.clickEvent){
  475. values.clickEvent=='off';
  476. }
  477. if(navigator.platform.indexOf('Win32')!=-1 || navigator.platform.indexOf('Win64')!=-1 || navigator.platform.indexOf('Mac')!=-1){
  478. //go to pc
  479. values.clickEvent='on';
  480. }else{
  481. // go to 手机
  482. values.clickEvent='off';
  483. }
  484. if(!values.eventStart){
  485. values.eventStart=void(0);
  486. }
  487. if(!values.eventMove){
  488. values.eventMove=void(0);
  489. }
  490. if(!values.eventEnd){
  491. values.eventEnd=void(0);
  492. }
  493. if(!values.lockEvent){
  494. values.lockEvent='on';
  495. }
  496. touchBox=document.getElementById(values.node);
  497. var ctxOffsetTop=0;
  498. var ctxOffsetLeft=0;
  499. if(values.type==1){
  500. ctxOffsetLeft=touchBox.offsetLeft;
  501. ctxOffsetTop=touchBox.offsetTop;
  502. }
  503. function getX(obj){
  504. var parObj=obj;
  505. var left=obj.offsetLeft;
  506. while(parObj=parObj.offsetParent){
  507. left+=parObj.offsetLeft;
  508. }
  509. return left;
  510. }
  511. function getY(obj){
  512. var parObj=obj;
  513. var top=obj.offsetTop;
  514. while(parObj = parObj.offsetParent){
  515. top+=parObj.offsetTop;
  516. }
  517. return top;
  518. }
  519. function getScrollTop(){
  520. var scrollTop=0;
  521. if(document.documentElement&&document.documentElement.scrollTop)
  522. {
  523. scrollTop=document.documentElement.scrollTop;
  524. }
  525. else if(document.body)
  526. {
  527. scrollTop=document.body.scrollTop;
  528. }
  529. return scrollTop;
  530. }
  531. function getScrollLeft(){
  532. var scrollLeft=0;
  533. if(document.documentElement&&document.documentElement.scrollLeft)
  534. {
  535. scrollLeft=document.documentElement.scrollLeft;
  536. }
  537. else if(document.body)
  538. {
  539. scrollLeft=document.body.scrollLeft;
  540. }
  541. return scrollLeft;
  542. }
  543. //坐标动作缓存返回给回调函数
  544. var touchCoordinate={
  545. mouseDownX:-1,//开始X坐标
  546. mouseDownY:-1,//开始Y坐标
  547. mouseHisX:-1,//touchmove上一次历史X坐标
  548. mouseHisY:-1,//touchmove上一次历史Y坐标
  549. mouseUpX:-1,//touchmove X坐标
  550. mouseUpY:-1,//touchmove Y坐标
  551. mouseState:0,//0up,1:down
  552. id:values.node//返回节点id
  553. }
  554. //加载触摸事件
  555. try{
  556. touchBox.addEventListener("touchstart", touchStart, false);
  557. touchBox.addEventListener("touchmove", touchMove, false);
  558. touchBox.addEventListener("touchend", touchEnd, false);
  559. }catch(e){}
  560. function touchStart(event){
  561. try{
  562. touchCoordinate.mouseDownX = event.targetTouches[0].pageX-ctxOffsetLeft;
  563. touchCoordinate.mouseDownY = event.targetTouches[0].pageY-ctxOffsetTop;
  564. touchCoordinate.mouseHisX=touchCoordinate.mouseDownX;
  565. touchCoordinate.mouseHisY=touchCoordinate.mouseDownY;
  566. touchCoordinate.mouseUpX=touchCoordinate.mouseDownX;
  567. touchCoordinate.mouseUpY=touchCoordinate.mouseDownY;
  568. values.eventStart(touchCoordinate);
  569. if(values.lockEvent=='on'){
  570. event.preventDefault();
  571. event.stopPropagation();
  572. }
  573. }catch(e){}
  574. }
  575. function touchMove(event){
  576. try{
  577. touchCoordinate.mouseHisX=touchCoordinate.mouseUpX;
  578. touchCoordinate.mouseHisY=touchCoordinate.mouseUpY;
  579. touchCoordinate.mouseUpX=event.targetTouches[0].pageX-ctxOffsetLeft;
  580. touchCoordinate.mouseUpY=event.targetTouches[0].pageY-ctxOffsetTop;
  581. touchCoordinate.mouseState=1;
  582. values.eventMove(touchCoordinate);
  583. if(values.lockEvent=='on'){
  584. event.preventDefault();
  585. event.stopPropagation();
  586. }
  587. }catch(e){}
  588. }
  589. function touchEnd(event){
  590. try{
  591. touchCoordinate.mouseState=0;
  592. values.eventEnd(touchCoordinate);
  593. if(values.lockEvent=='on'){
  594. event.preventDefault();
  595. event.stopPropagation();
  596. }
  597. }catch(e){}
  598. }
  599. //加载点击事件
  600. if(navigator.userAgent.indexOf("MSIE")>0 && values.clickEvent=='on'){
  601. touchBox.onmousedown=function(e){
  602. try{
  603. touchCoordinate.mouseDownX = event.clientX-getX(touchBox)+getScrollLeft();
  604. touchCoordinate.mouseDownY = event.clientY-(getX(touchBox)-getScrollTop());
  605. touchCoordinate.mouseHisX=touchCoordinate.mouseDownX;
  606. touchCoordinate.mouseHisY=touchCoordinate.mouseDownY;
  607. touchCoordinate.mouseUpX=touchCoordinate.mouseDownX;
  608. touchCoordinate.mouseUpY=touchCoordinate.mouseDownY;
  609. touchCoordinate.mouseState=1;
  610. values.eventStart(touchCoordinate);
  611. }catch(e){}
  612. }
  613. touchBox.onmousemove=function(e){
  614. try{
  615. if(touchCoordinate.mouseState==1){
  616. touchCoordinate.mouseHisX=touchCoordinate.mouseUpX;
  617. touchCoordinate.mouseHisY=touchCoordinate.mouseUpY;
  618. touchCoordinate.mouseUpX=event.clientX-getX(touchBox)+getScrollLeft();
  619. touchCoordinate.mouseUpY=event.clientY-(getY(touchBox)-getScrollTop());
  620. values.eventMove(touchCoordinate);
  621. }
  622. }catch(e){}
  623. }
  624. }else if(values.clickEvent=='on'){
  625. touchBox.onmousedown=function(event){
  626. try{
  627. touchCoordinate.mouseDownX = event.clientX-getX(touchBox)+getScrollLeft();
  628. touchCoordinate.mouseDownY = event.clientY-(getY(touchBox)-getScrollTop());
  629. touchCoordinate.mouseHisX=touchCoordinate.mouseDownX;
  630. touchCoordinate.mouseHisY=touchCoordinate.mouseDownY;
  631. touchCoordinate.mouseUpX=touchCoordinate.mouseDownX;
  632. touchCoordinate.mouseUpY=touchCoordinate.mouseDownY;
  633. touchCoordinate.mouseState=1;
  634. values.eventStart(touchCoordinate);
  635. }catch(e){}
  636. }
  637. touchBox.onmousemove=function(event){
  638. try{
  639. if(touchCoordinate.mouseState==1){
  640. touchCoordinate.mouseHisX=touchCoordinate.mouseUpX;
  641. touchCoordinate.mouseHisY=touchCoordinate.mouseUpY;
  642. touchCoordinate.mouseUpX=event.clientX-(getX(touchBox)-getScrollLeft());
  643. touchCoordinate.mouseUpY=event.clientY-(getY(touchBox)-getScrollTop());
  644. values.eventMove(touchCoordinate);
  645. }
  646. }catch(e){}
  647. }
  648. }
  649. if(values.clickEvent=='on'){
  650. touchBox.onmouseup=function(){
  651. try{
  652. touchCoordinate.mouseState=0;
  653. values.eventEnd(touchCoordinate);
  654. }catch(e){}
  655. }
  656. touchBox.onmouseout=function(){
  657. touchCoordinate.mouseState=0;
  658. values.eventEnd(touchCoordinate);
  659. }
  660. }
  661. }
  662. function initScreen(){//设置屏幕分辨率
  663. var contentValue='width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no';
  664. document.getElementsByName('viewport')[0].content=contentValue;
  665. var scale='1.0';
  666. var uiWidth=320;
  667. var deviceWidth=document.body.clientWidth;
  668. var deviceHeight=document.body.clientHeight;
  669. if(deviceWidth>deviceHeight){
  670. deviceWidth=deviceHeight;
  671. }
  672. //alert(uiWidth+":"+deviceWidth);
  673. try{
  674. if(uiWidth<deviceWidth){
  675. targetDensitydpi=142;
  676. }else{
  677. targetDensitydpi=160;
  678. }
  679. }catch(e){}
  680. //alert(targetDensitydpi);
  681. //var contentValue='width=device-width, target-densitydpi='+targetDensitydpi+' , initial-scale='+scale+', minimum-scale='+scale+', maximum-scale='+scale+', user-scalable=no';
  682. //document.getElementsByName('viewport')[0].content=contentValue;
  683. }
  684. function getDomNode(nodeData){//获取节点对象列表
  685. /*
  686. *nodeData:节点对象
  687. */
  688. var html='';
  689. for(var item in nodeData){
  690. html+=item+'<br>';
  691. }
  692. return html;
  693. }
  694. function msgBox(e){
  695. closeMsgBox();//清除原来的msgbox
  696. var bodyObj = document.body;//页面body节点对象
  697. var htmlObj = document.getElementsByTagName("html");//页面html节点对象
  698. var msgBox = document.createElement("div");//弹出框div对象
  699. var rnd=Math.ceil(Math.random()*1000);
  700. var htmlText='<div class="msgBox" ><span>'+e+'</span></div>';//弹出框html
  701. bodyObj.appendChild(msgBox);//新建的对象加入页面
  702. msgBox.innerHTML=htmlText;
  703. msgBox.id="msg_box_by_gzy";
  704. try{
  705. msgBox.style.opacity=1;
  706. }catch(e){}
  707. setTimeout(function(){
  708. closeMsgBox();
  709. },2000);
  710. }
  711. function closeMsgBox(){
  712. try{
  713. var myObj=document.getElementById('msg_box_by_gzy');
  714. var bodyObj = document.body;//页面body节点对象
  715. bodyObj.removeChild(myObj);//删除弹出框节点
  716. }catch(e){}
  717. }
  718. function webBox(e,callBack){//弹出框
  719. /*
  720. *e:显示的html
  721. */
  722. if(!callBack){
  723. callBack=function(){}
  724. }
  725. closeWebBox();//清除原来的webBox
  726. changeCityState=0;//锁定更换城池
  727. var bodyObj = document.body;//页面body节点对象
  728. var htmlObj = document.getElementsByTagName("html");//页面html节点对象
  729. bodyObj.style.overflow='visible';
  730. var alertBox = document.createElement("div");//弹出框div对象
  731. var rnd=Math.ceil(Math.random()*1000);
  732. var bodyShadeById="body_shade_by_gzy"+rnd;
  733. var alertBoxInfoById="alert_box_info_by_gzy"+rnd;
  734. var closeAlertById="closeAlert_by_gzy"+rnd;
  735. //var htmlText='<div border="0" class="body_shade body_shade_bg" id="'+bodyShadeById+'" style="height:'+document.documentElement.clientHeight+'px;"></div><div class="webBox"><div class="alert_box" id="'+alertBoxInfoById+'">'+e+'</div><div class="close_alert" id="'+closeAlertById+'">×</div></div></div>';//弹出框html
  736. var htmlText='<div border="0" class="body_shade body_shade_bg" id="'+bodyShadeById+'" style="height:'+document.documentElement.clientHeight+'px;"></div><div class="webBox"><div class="alert_box" id="'+alertBoxInfoById+'"><div class="text">'+e+'</div></div><div class="close_alert" id="'+closeAlertById+'"></div></div></div>';//弹出框html
  737. if(!isIE6()){
  738. htmlText='<iframe border="0" class="body_shade" style="height:'+document.body.clientHeight+'px;"></iframe>'+htmlText;
  739. }
  740. bodyObj.appendChild(alertBox);//新建的对象加入页面
  741. alertBox.innerHTML=htmlText;
  742. //alertBox.id="alert_box_by_gzy"+rnd;
  743. alertBox.id="alert_box_by_gzy";
  744. alertBox.className="alert_box_by_gzy aleft";
  745. var alertBoxObj=document.getElementById(alertBox.id);
  746. var alertBoxInfoObj=document.getElementById(alertBoxInfoById);
  747. var closeAlertObj=document.getElementById(closeAlertById);
  748. alertBoxInfoObj.style.opacity='0';
  749. //alertBoxInfoObj.style.width='280px';
  750. //alertBoxInfoObj.style.marginTop=setAlertBoxTop()+"px";
  751. alertBoxInfoObj.style.marginTop='0';
  752. //alertBoxInfoObj.style.height=(getWindowHeight()*0.9)+'px';
  753. //alertBoxInfoObj.style.left=setAlertBoxLeft()+"px";
  754. //closeAlertObj.style.left=(setAlertBoxLeft()+300+12)+"px";
  755. //closeAlertObj.style.top=(setAlertBoxTop()+10)+"px";
  756. showOpacityBox(0,alertBoxInfoObj);
  757. //window.scrollTo(0,0);
  758. closeAlertObj.onclick=function(){
  759. bodyObj.removeChild(alertBoxObj);//删除弹出框节点
  760. callBack();
  761. }
  762. document.getElementById(bodyShadeById).onclick=function(){
  763. bodyObj.removeChild(alertBoxObj);//删除弹出框节点
  764. callBack();
  765. }
  766. function setStart(coord){
  767. }
  768. function setMove(coord){
  769. }
  770. function setEnd(coord){
  771. try{
  772. bodyObj.removeChild(alertBoxObj);//删除弹出框节点
  773. }catch(e){}
  774. callBack();
  775. }
  776. var values={
  777. node:bodyShadeById,
  778. type:1,
  779. eventStart:setStart,
  780. eventMove:setMove,
  781. eventEnd:setEnd
  782. }
  783. AddEventHandlers(values);
  784. function setAlertBoxTop(){
  785. if(alertBoxInfoObj.clientHeight>document.documentElement.clientHeight){
  786. setTop=30;
  787. }else if(isIE6()){
  788. if(document.body.scrollTop==0){
  789. sTop=document.documentElement.scrollTop;
  790. }else{
  791. sTop=document.body.scrollTop;
  792. }
  793. setTop=(document.documentElement.clientHeight-alertBoxInfoObj.clientHeight)/2*0.6+sTop;
  794. }else{
  795. setTop=(document.documentElement.clientHeight-alertBoxInfoObj.clientHeight)/2*0.6;
  796. }
  797. return setTop;
  798. }
  799. function setAlertBoxLeft(){
  800. if(320>bodyObj.clientWidth){
  801. setLeft=0;
  802. }else{
  803. setLeft=((bodyObj.clientWidth-320)/2)-6;
  804. }
  805. return setLeft;
  806. }
  807. function isIE6(){
  808. if(typeof document.body.style.maxHeight === "undefined") {
  809. return true;
  810. }else{
  811. return false;
  812. }
  813. }
  814. };
  815. function showOpacityBox(opc,boxObj){
  816. var myObj=boxObj;
  817. myObj.style.display='block';
  818. myObj.style.opacity=1;
  819. /*
  820. var op=opc;
  821. if(op>=1){
  822. return;
  823. }
  824. op+=0.05;
  825. myObj.style.opacity=op;
  826. setTimeout(function(){
  827. showOpacityBox(op,boxObj);
  828. },24);
  829. */
  830. }
  831. function hideOpacityBox(opc,boxObj){
  832. var op=opc;
  833. var myObj=boxObj;
  834. if(op<=0){
  835. return;
  836. }
  837. op-=0.05;
  838. myObj.style.opacity=op;
  839. setTimeout(function(){
  840. hideOpacityBox(op,boxObj);
  841. },24);
  842. }
  843. function closeWebBox(){
  844. try{
  845. var myObj=document.getElementById('alert_box_by_gzy');
  846. var bodyObj = document.body;//页面body节点对象
  847. bodyObj.style.overflow='auto';
  848. bodyObj.removeChild(myObj);//删除弹出框节点
  849. }catch(e){}
  850. }
  851. function fromErrorAmi(objId){//表单震动效果
  852. /*
  853. *objId:输入框id
  854. */
  855. var myObj=document.getElementById(objId);
  856. playAnimation(0);
  857. window.location.hash=objId;
  858. function playAnimation(times){
  859. /*
  860. *times:执行到第几次次数
  861. */
  862. if(times%2==0){
  863. myObj.style.marginLeft='0';
  864. }else{
  865. myObj.style.marginLeft='8px';
  866. }
  867. times++;
  868. if(times<=20){
  869. setTimeout(function(){
  870. playAnimation(times);
  871. },24);
  872. }
  873. }
  874. }
  875. function setSelectBox(values){//选择框
  876. /*
  877. *selId:下拉框id
  878. *showId:显示框id
  879. *callBack:选择后回调程序,传递参数为选中的option对象
  880. */
  881. if(!values.callBack){
  882. values.callBack=function(){};
  883. }
  884. var selObj=document.getElementById(values.selId);
  885. var showObj=document.getElementById(values.showId);
  886. showObj.innerHTML=selObj.options[selObj.selectedIndex].text;
  887. selObj.onchange=function(){
  888. showObj.innerHTML=selObj.options[selObj.selectedIndex].text;
  889. values.callBack(selObj.options[selObj.selectedIndex]);
  890. }
  891. }
  892. function loadImg(url,callBack){//此方法现在用来加载监控代码
  893. /*
  894. *url:图片地址
  895. *callBack请求完成后回调方法
  896. */
  897. if(!url){
  898. return;
  899. }
  900. var t;
  901. if(!callBack){
  902. callBack=function(){};
  903. }
  904. var imgObj=new Image();
  905. imgObj.src=url;
  906. imgObj.onload=function(){
  907. callBack(true,url);
  908. }
  909. t=setTimeout(function(){//20秒超时处理,防止图片加载失败导致没有响应
  910. callBack(false,url);
  911. imgObj.onload=null;
  912. },30000);
  913. }
  914. function loadImgCallBack(state,imgObj){
  915. if(!state){
  916. console.log(imgObj+'加载失败');
  917. }else{
  918. console.log(imgObj+'加载成功 ');
  919. }
  920. }
  921. function getWindowWidth(){
  922. // 获取窗口宽度
  923. var winWidth;
  924. if (window.innerWidth){
  925. winWidth = window.innerWidth;
  926. }else if ((document.body) && (document.body.clientWidth)){
  927. winWidth = document.body.clientWidth;
  928. }
  929. return winWidth;
  930. }
  931. function getWindowHeight(){
  932. // 获取窗口高度
  933. var winHeight;
  934. if (window.innerHeight){
  935. winHeight = window.innerHeight;
  936. }else if ((document.body) && (document.body.clientHeight)){
  937. winHeight = document.body.clientHeight;
  938. }
  939. return winHeight;
  940. }
  941. function focusImgChange(values){//焦点图切换
  942. /*
  943. *必须加载command.js
  944. *boxId:焦点图容器id
  945. *imgList:焦点图地址数组列表
  946. *pageLink:点击焦点图后的链接地址数组
  947. *timer:切换时间
  948. *btn:on/off,是否显示切换按钮
  949. *focusBtnClass:当前图片按钮样式名
  950. *btnClass:按钮样式名
  951. *width:设置焦点图宽度,为空则设置其宽度为适应屏幕宽度
  952. *height:设置焦点图高度,为空则设置其宽度为适应屏幕高度
  953. *btnBoxClass:设置按钮容器样式
  954. */
  955. var t;//切换时间计时
  956. var focusPic=0;//当前图片
  957. var focusId='focus'+values.boxId;
  958. var focusImgId='focus_img'+values.boxId;
  959. var focusBtnId='focus_btn'+values.boxId;
  960. var focusImgObj;
  961. var focusBtnObj;
  962. var winWidth=getWindowWidth();
  963. var winHeight=getWindowHeight();
  964. function init(){//初始化
  965. if(!values.width){
  966. values.width=winWidth;
  967. }
  968. if(!values.height){
  969. values.height=winHeight;
  970. }
  971. if(!values.timer){
  972. values.timer=5000;
  973. }
  974. if(!values.btnBoxClass){
  975. values.btnBoxClass='style="position:absolute;z-index:10; bottom:0; left:0; width:'+values.width+'px;"';
  976. }else{
  977. values.btnBoxClass='class="'+values.btnBoxClass+'"';
  978. }
  979. var html='<div style="width:'+values.width+'px;height:'+values.height+'px;margin:auto;position:relative;overflow:hidden;" id="'+focusId+'"><ul id="'+focusImgId+'" style="width:'+(values.width*values.imgList.length)+'px;height='+values.height+'px;position:absolute;left:0;top:0;">';
  980. for(var i=0;i<values.imgList.length;i++){
  981. //html+='<li style="z-index:1; float:left;width:'+values.width+'px;"><a href="'+values.pageLink[i]+'"><img src="'+values.imgList[i]+'" width="'+values.width+'px" height="'+values.height+'px" /></a></li>';
  982. html+='<li style="z-index:1; float:left;width:'+values.width+'px;"><img src="'+values.imgList[i]+'" width="'+values.width+'px" height="'+values.height+'px" /></li>';
  983. }
  984. html+='</ul>';
  985. html+='</div>';
  986. if(values.btn=='on'){
  987. html+='<ul id="'+focusBtnId+'" '+values.btnBoxClass+'>';
  988. var btnW=values.width/values.imgList.length;
  989. for(var i=0;i<values.imgList.length;i++){
  990. if(i==0){
  991. html+='<li style="float:left;" value="'+i+'" class="'+values.focusBtnClass+'"></li>';
  992. }else{
  993. html+='<li style="float:left;" value="'+i+'" class="'+values.btnClass+'"></li>';
  994. }
  995. }
  996. html+='</ul>';
  997. }
  998. document.getElementById(values.boxId).innerHTML=html;
  999. focusImgObj=document.getElementById(focusImgId);
  1000. if(values.btn=='on'){
  1001. focusBtnObj=document.getElementById(focusBtnId);
  1002. for(i=0;i<values.imgList.length;i++){
  1003. focusBtnObj.getElementsByTagName("li")[i].onclick=function(){
  1004. focusClick(this.value);
  1005. }
  1006. }
  1007. }
  1008. var touchValue={
  1009. node:focusImgId,
  1010. type:1,
  1011. clickEvent:'off',
  1012. eventStart:setStart,
  1013. eventMove:setMove,
  1014. eventEnd:setEnd,
  1015. lockEvent:'on'
  1016. }
  1017. AddEventHandlers(touchValue);
  1018. focusGo();
  1019. }
  1020. function focusGo(){
  1021. clearTimeout(t);
  1022. if(focusPic>(values.imgList.length-1)){
  1023. focusPic=0;
  1024. }
  1025. if(focusPic<0){
  1026. focusPic=values.imgList.length-1;
  1027. }
  1028. if(values.btn=='on'){
  1029. for(i=0;i<values.imgList.length;i++){
  1030. focusBtnObj.getElementsByTagName("li")[i].className=values.btnClass;
  1031. }
  1032. focusBtnObj.getElementsByTagName("li")[focusPic].className=values.focusBtnClass;
  1033. }
  1034. focusImgObj.style.webkitTransition='all 500ms ease-in-out';
  1035. focusImgObj.style.transition='all 500ms ease-in-out';
  1036. focusImgObj.style.left=(focusPic*(-values.width))+'px';
  1037. focusPic++;
  1038. t=setTimeout(function(){
  1039. focusGo();
  1040. },values.timer);
  1041. }
  1042. function focusClick(clickPic){
  1043. clearTimeout(t);
  1044. focusPic=clickPic;
  1045. focusGo();
  1046. }
  1047. /*手机touch事件处理*/
  1048. function setStart(e){
  1049. clearTimeout(t);
  1050. }
  1051. function setMove(e){
  1052. focusImgObj.style.webkitTransition='';
  1053. focusImgObj.style.transition='';
  1054. focusImgObj.style.left=((focusPic-1)*(-values.width)-(e.mouseDownX-e.mouseUpX))+'px';
  1055. }
  1056. function setEnd(e){
  1057. if(e.mouseDownX-e.mouseUpX>-10 && e.mouseDownX-e.mouseUpX<10){
  1058. try{
  1059. values.pageLink[focusPic-1](values.imgList[focusPic-1]);
  1060. }catch(e){}
  1061. }
  1062. if(e.mouseDownX-e.mouseUpX>100){
  1063. if(focusPic>(values.imgList.length-1)){
  1064. focusPic--;
  1065. }
  1066. focusGo();
  1067. }else if(e.mouseDownX-e.mouseUpX<-100){
  1068. if(focusPic>1){
  1069. focusPic-=2;
  1070. }else{
  1071. focusPic=0;
  1072. }
  1073. focusGo();
  1074. }else{
  1075. if(focusPic>0){
  1076. focusPic--;
  1077. }
  1078. focusGo();
  1079. }
  1080. }
  1081. init();
  1082. }
  1083. function html5Reader(file){
  1084. var file = file.files[0];
  1085. var reader = new FileReader();
  1086. reader.readAsDataURL(file);
  1087. reader.onload = function(e){
  1088. var pic = document.getElementById("preview");
  1089. pic.src=this.result;
  1090. }
  1091. }
  1092. function addFavorite(sURL, sTitle){
  1093. try{ window.external.addFavorite(sURL, sTitle);}
  1094. catch (e){
  1095. try{window.sidebar.addPanel(sTitle, sURL, "");}
  1096. catch (e)
  1097. {alert("加入收藏失败,请使用Ctrl+D进行添加");}
  1098. }
  1099. }
  1100. function shareWeixin(){
  1101. var shareImg='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANUAAAByCAYAAADEWZTVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE0QTk2MzgzRTU2RjExRTM5RTQ1QjgxOUEyRTU2NjdGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE0QTk2Mzg0RTU2RjExRTM5RTQ1QjgxOUEyRTU2NjdGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTRBOTYzODFFNTZGMTFFMzlFNDVCODE5QTJFNTY2N0YiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTRBOTYzODJFNTZGMTFFMzlFNDVCODE5QTJFNTY2N0YiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz530a++AAAUA0lEQVR42uxda4g8y1Wv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';
  1102. var bodyObj = document.body;//页面body节点对象
  1103. var loadingBox = document.createElement("div");//Loading对象
  1104. bodyObj.appendChild(loadingBox);//新建的对象加入页面
  1105. loadingBox.innerHTML='<div style="position: fixed;top:5px;right:10px; "><img src="'+shareImg+'" /></div>';
  1106. loadingBox.id="loadingBox_by_gzy_weixin";
  1107. loadingBox.style.zIndex='9999999';
  1108. loadingBox.className="loadingBox";
  1109. loadingBox.style.height=document.documentElement.clientHeight+'px';
  1110. loadingBox.onclick=function(){
  1111. closeShareWeixinBox();
  1112. }
  1113. function closeShareWeixinBox(){
  1114. bodyObj.removeChild(loadingBox);
  1115. }
  1116. }
  1117. function pageError(){
  1118. }