123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485 |
- 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]);
- }
- };
|