var Util = { /** * 获取url中"?"符后的字串 * let code = getRequestParam()["code"] * * @returns {Object} */ getRequestParam : function() { var url = location.search; var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); var strs = str.split("&"); for(var i = 0; i < strs.length; i ++) { theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); } } return theRequest; }, /** * 微信JSAPI分享 * config = { * appId : * timestamp : * nonceStr : * signature : * logo : * url : window.location.href * title : * desc : * } */ wxjsapiShare : function(config) { if(!wx) { return; } var logo = config.logo; var url = config.url; var title = config.title; var desc = config.desc; wx.config({ debug: false, appId: config.appId, timestamp: config.timestamp, nonceStr: config.nonceStr, signature: config.signature, jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone' ] }); wx.error(function(res){}); wx.ready(function () { share(); }); function share() { wx.onMenuShareTimeline({ title: title, link: url, imgUrl: logo, success: function () { }, cancel: function () { } }); wx.onMenuShareAppMessage({ title:title, desc: desc, link: url, imgUrl: logo, type: 'link', dataUrl: '', success: function () {}, cancel: function () {} }); wx.onMenuShareQQ({ title: title, desc: desc, link: url, imgUrl: logo, success: function () {}, cancel: function () {} }); wx.onMenuShareWeibo({ title: title, desc: desc, link: url, imgUrl: logo, success: function () {}, cancel: function () {} }); wx.onMenuShareQZone({ title: title, desc: desc, link: url, imgUrl: logo, success: function () {}, cancel: function () {} }); } }, /** * 跳转或打开APP * @param openUrl 打开APP自定义url * @param callback 是否打开APP回调, 入参 1-打开APP 2-没有打开APP */ jumpOrDownload : function(openUrl, callback) { function checkOpen(cb){ var _clickTime = +(new Date()); function check(elsTime) { if ( elsTime > 3000 || document.hidden || document.webkitHidden) { cb(1); } else { cb(0); } } //启动间隔20ms运行的定时器,并检测累计消耗时间是否超过3000ms,超过则结束 var _count = 0, intHandle; intHandle = setInterval(function(){ _count++; var elsTime = +(new Date()) - _clickTime; if (_count>=100 || elsTime > 3000 ) { clearInterval(intHandle); check(elsTime); } }, 20); } //在iframe 中打开APP var ifr = document.createElement('iframe'); ifr.src = openUrl; ifr.style.display = 'none'; if (callback) { if (Util.isWechatBrowser()) { console.log("在微信浏览器"); callback(0); }else{ checkOpen(function(opened){ callback && callback(opened); }); } } document.body.appendChild(ifr); setTimeout(function() { document.body.removeChild(ifr); }, 2000); }, /** * 身份证上提取性别 * @param idcard * @returns {number} 1-男 0-女 */ gender : function(idcard) { if (parseInt(idcard.slice(-2, -1)) % 2 == 1) { return 1; } else { return 0; } }, /** * 身份证提取出生日期 * @param idcard * @returns {string} */ birthDate : function(idcard) { var birthday = ""; if(idcard != null && idcard != ""){ if(idcard.length == 15){ birthday = "19"+idcard.slice(6,12); } else if(idcard.length == 18){ birthday = idcard.slice(6,14); } birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-"); //通过正则表达式来指定输出格式为:1990-01-01 } return birthday; }, /** * 页面加水印 * @param settings */ watermark : function(settings) { //默认设置 var defaultSettings={ watermark_txt:"水印", watermark_x:20,//水印起始位置x轴坐标 watermark_y:20,//水印起始位置Y轴坐标 watermark_rows:20,//水印行数 watermark_cols:20,//水印列数 watermark_x_space:100,//水印x轴间隔 watermark_y_space:50,//水印y轴间隔 watermark_color:'#aaa',//水印字体颜色 watermark_alpha:0.4,//水印透明度 watermark_fontsize:'15px',//水印字体大小 watermark_font:'微软雅黑',//水印字体 watermark_width:210,//水印宽度 watermark_height:80,//水印长度 watermark_angle:15//水印倾斜度数 }; //采用配置项替换默认值,作用类似jquery.extend if(arguments.length===1&&typeof arguments[0] ==="object" ) { var src=arguments[0]||{}; for(key in src) { if(src[key]&&defaultSettings[key]&&src[key]===defaultSettings[key]) continue; else if(src[key]) defaultSettings[key]=src[key]; } } var oTemp = document.createDocumentFragment(); //获取页面最大宽度 var page_width = Math.max(document.body.clientWidth,document.body.clientWidth); var cutWidth = page_width*0.0150; var page_width=page_width-cutWidth; //获取页面最大高度 var page_height = Math.max(document.body.scrollHeight,document.body.clientHeight)+450; // var page_height = document.body.scrollHeight+document.body.scrollTop; //如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔 if (defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings.watermark_width *defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1)) > page_width)) { defaultSettings.watermark_cols = parseInt((page_width-defaultSettings.watermark_x+defaultSettings.watermark_x_space) / (defaultSettings.watermark_width + defaultSettings.watermark_x_space)); defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1)); } //如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔 if (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1)) > page_height)) { defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space)); defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1)); } var x; var y; for (var i = 0; i < defaultSettings.watermark_rows; i++) { y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i; for (var j = 0; j < defaultSettings.watermark_cols; j++) { x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j; var mask_div = document.createElement('div'); mask_div.id = 'mask_div' + i + j; mask_div.className = 'mask_div'; mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt)); //设置水印div倾斜显示 mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.visibility = ""; mask_div.style.position = "absolute"; mask_div.style.left = x + 'px'; mask_div.style.top = y + 'px'; mask_div.style.overflow = "hidden"; mask_div.style.zIndex = "9999"; mask_div.style.pointerEvents='none';//pointer-events:none 让水印不遮挡页面的点击事件 //mask_div.style.border="solid #eee 1px"; mask_div.style.opacity = defaultSettings.watermark_alpha; mask_div.style.fontSize = defaultSettings.watermark_fontsize; mask_div.style.fontFamily = defaultSettings.watermark_font; mask_div.style.color = defaultSettings.watermark_color; mask_div.style.textAlign = "center"; mask_div.style.width = defaultSettings.watermark_width + 'px'; mask_div.style.height = defaultSettings.watermark_height + 'px'; mask_div.style.display = "block"; oTemp.appendChild(mask_div); }; }; document.body.appendChild(oTemp); }, isAppWebView : function(appWebView) { try{ var ua = window.navigator.userAgent.toLowerCase(); if(ua.indexOf(appWebView)>-1){ return true; } return false; }catch (e) { console.error(e); return false; } }, /** * 是否在android设备 * @returns {boolean} */ isAndroid : function() { try{ var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/android/ig)){ return true; } return false; }catch (e) { console.error(e); return false; } }, /** * 是否在IOS设备 * @returns {boolean} */ isIOS : function() { try{ var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/iphone|ipod|ipad/ig)){ return true; } return false; }catch (e) { console.error(e); return false; } }, /** * 是否在iphone设备 * @returns {boolean} */ isIphone : function() { try{ var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/iphone|ipod/ig)){ return true; } return false; }catch (e) { console.error(e); return false; } }, /** * 是否在ipad设备 * @returns {boolean} */ isIpad : function() { try{ var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/ipad/ig)){ return true; } return false; }catch (e) { console.error(e); return false; } }, /** * 判断是否在微信浏览器 * @returns {boolean} */ isWechatBrowser : function(){ try{ var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i) == 'micromessenger'){ return true; }else{ return false; } }catch (e) { console.error(e); return false; } }, /** * 是否在支付宝公众号webview里面 * @returns {boolean} */ isAliBrowser : function(){ try{ var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/aliapp/i) == 'aliapp'){ return true; }else if(ua.match(/alipayclient/i) == 'alipayclient') { return true; } return false; }catch (e) { console.error(e); return false; } }, /** * 判断是否在支付宝小程序 * @returns {boolean} */ isAliProgramBrowser : function(){ try{ if(window.my && window.my.tradePay) { return true; } return false; }catch (e) { console.error(e); return false; } }, /** * 是否Iphone全面屏手机 * @returns {Window | boolean} */ isNewIpPhone : function() { return window && navigator.userAgent.indexOf('iPhone')>-1 && window.screen.height >= 812 && window.devicePixelRatio >= 2; }, /** * 站长统计 * 页面PV自动统计: * var _czc = _czc || []; * Util.cnzz(); * 页面PV自定义统计: * var _czc = _czc || []; * Util.cnzzAutoPageview(_czc, false); * Util.cnzz(); * Util.cnzzTrackPageView(_czc, "/index.html"); * * 事件统计: * var _czc = _czc || []; * Util.cnzzTrackEvent(_czc, category, action, label); */ cnzz : function(cnzzId) { if(!document.getElementById("cnzz_stat_icon_"+cnzzId)) { try { var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://"); document.write(unescape("%3Cspan id='cnzz_stat_icon_"+cnzzId+"'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s4.cnzz.com/z_stat.php%3Fid%3D"+cnzzId+"' type='text/javascript'%3E%3C/script%3E")); } catch(e) { console.log(e); } } document.getElementById("cnzz_stat_icon_"+cnzzId).style.display="none"; }, /** * 设置是否自动PV统计 * @param _czc * @param autopageview */ cnzzAutoPageview : function(_czc, autopageview) { _czc = _czc || []; _czc.push(["_setAutoPageview",autopageview]); }, /** * 页面访问统计 * @param _czc * @param content_url 访问页面 * @param referer_url 来源页面 */ cnzzTrackPageView : function(_czc, content_url, referer_url) { _czc = _czc || []; _czc.push(["_trackPageview",content_url,referer_url]); }, /** * 事件统计 * @param _czc * @param category 表示事件发生在谁身上 * @param action 表示访客跟元素交互的行为动作 * @param label 用于更详细的描述事件 */ cnzzTrackEvent : function(_czc, category, action, label) { _czc = _czc || []; _czc.push(["_trackEvent",category,action,label]); } };