js公共方法

/*
    MS 民生电商公共方法
*/
window.MS = window.MS || {};
//判断平台类型和特性的属性
;(function(){
    var userAgent = navigator.userAgent || ‘‘;
    MS.platform = MS.platform || {};
    //判断是否为android平台
    MS.platform.isAndroid = /android/i.test( userAgent );
    //判断是否为Winphone平台
    MS.platform.isWinphone = /windows phone/i.test( userAgent );
    //判断是否为ipad平台
    MS.platform.isIpad = /ipad/i.test( userAgent );
    //判断是否为iphone平台
    MS.platform.isIphone = /iphone/i.test( userAgent );
    //判断是否是微信
    MS.platform.isWeChat = /micromessenger/i.test( userAgent );
    //判断是否是UC浏览器
    MS.platform.isUc = /ucbrowser/i.test( userAgent );
})();
//触屏设备使用touchstart事件,PC使用click
;(function(){
    MS.EventCenter = MS.EventCenter || {};
    MS.EventCenter.CLICK = (‘ontouchstart‘ in window ? ‘touchstart‘ : ‘click‘);
})();
//cookie方法
;(function() {
    MS.cookie = {
        get : function( name ) {
            var c = document.cookie;
            if ( !c.length ) {
                return ‘‘;
            }
            var tp = c.split( ‘; ‘ );
            for ( var i = tp.length - 1; i >= 0; i-- ) {
                var tm = tp[ i ].split( ‘=‘ );
                if ( tm.length > 1 && tm[ 0 ] == name && tm[ 1 ] ) {
                    return unescape( $.trim( tm[ 1 ] ) );
                }
            }
            return ‘‘;
        },
        set : function( name, value, day, domain, usehost ) {
            day = day || 365, domain = domain || ‘‘, usehost = usehost || 0;
            var expires = new Date();
            expires.setTime( (new Date()).getTime() + 3600 * 24 * 1000 * day );
            document.cookie = name + "=" + escape( value ) + "; path=/; " + (usehost ? ‘host‘ : ‘domain‘) + "=" + domain + (day == -1 ? ‘‘ : ";expires=" + expires.toGMTString());
        },
        del : function( name ) {
            this.set( name, ‘‘, -365, null, 0 );
            this.set( name, ‘‘, -365, document.location.host, 1 );
        }
    };
})();
//本地存储
;(function(){
    var __localStorage = {
        set : function( name, val ){
            window.localStorage && localStorage.setItem( name, val );
        },
        get : function( name, val ){
            return window.localStorage && localStorage.getItem( name );
        },
        del : function( name, val ){
            window.localStorage && localStorage.removeItem( name );
        }
    };
    MS.STORAGE = MS.__localStorage || {
        set : __localStorage.set,
        get : __localStorage.get,
        del : __localStorage.del
    };
})();
//设置token
;(function(){
    function __setToken( tokens ) {
        MS.cookie.set( ‘token‘, tokens )
    };
    MS.token = {
        set : __setToken,
        get : function() {
            return MS.cookie.get( ‘token‘ );
        },
        del : function() {
            MS.cookie.set( ‘token‘, ‘‘, -365 );
        }
    };
})();
//全屏遮罩
;(function(){
    function __addShadow( top, callback ) {
        var $shadow = $( ‘#__shadow‘ );
        if ( typeof top === ‘function‘ ) {
            callback = top;
            top = 0;
        }
        if ( !$shadow.length ) {
            $shadow = $( ‘<div id="__shadow" style="opacity: .8; width: 100%;height: 100%;position: fixed;top: 0;left: 0;" class="z-act-pop"></div>‘ );
            $shadow.appendTo( ‘body‘ );
        } else {
            $shadow.show();
        }
        var docH = $( document ).height(), winH = $( window ).height(), h = Math.max( docH, winH );
        $shadow.height( h ).css( ‘top‘, top ).off( MS.EventCenter.CLICK ).on( MS.EventCenter.CLICK, function( e ) {
            e.preventDefault();
            e.stopPropagation();
            callback && callback();
            $shadow.hide();
            // 避免点击穿透到后面的元素
            return false;
        } );
        return $shadow;
    }
    MS.shadow = MS.shadow || {
        show : __addShadow,
        hide : function() {
            $( ‘#__shadow‘ ).hide();
            return false;
        }
    };
})();
//全屏loding
;(function(){
    function __addLoading(){
        var _loading = $( ‘#__loading‘ );
        if( !_loading.length ){
            _loading = $( ‘<div id="__loading" style="opacity: .8; width: 100%;height: 100%;position: fixed;top: 0;left: 0;" class="z-act-pop"></div>‘ );
            _loading.appendTo( ‘body‘ );
        }else{
            _loading.show();
        }
        return _loading;
    }
    MS.loading = MS.loading || {
        show : __addLoading,
        hide : function(){
            $( ‘#__loading‘ ).hide();
        }
    }
})();
/*
    对AJAX进行封装
    可配置参数
    options.isLoading 为false就不显示loading
    options.isToken 为false时就不需要传token字段
*/
;(function(){
    MS.util = MS.util || {};
    function __request( url, data, callback, options ) {
        var $timer = 0;
        // 简略写法支持
        if ( typeof data === ‘function‘ ) {
            // 支持__request(url, callback, options)写法
            if ( typeof callback !== ‘undefined‘ ) {
                options = callback;
            }
            // 支持__request(url, callback)写法
            callback = data;
            data = {};
        }
        //追加isajax,使服务器能够识别该请求来源于ajax
        if ( !options || !options.noAjax ) {
            data.isajax = 1;
        }
        //避免api的缓存
        data.dtime = +new Date();
        //标识手机端请求
        data.wap = true;
        //token登录秘钥
        ( options && options.isToken == false ) ? ‘‘ : data.token = MS.token.get() || MS.STORAGE.get( ‘token‘ );
        // 默认参数
        var ajaxSettings = {
            url : url,
            type : ‘POST‘,
            data : data,
            dataType : ‘json‘,
            crossDomain : true,
            timeout : 60000,
            beforeSend : function( xhr, settings ){
                if( ajaxSettings.isLoading == false ){ return; }
                MS.loading.show();
            },
            success : function( json ) {
                if ( !json ) { return; }
                callback && callback( json );
            },
            error : function( xhr, errorType, error ){
                if( errorType == ‘error‘ ){
                    MS.messShow( ‘服务器异常,请稍后重试!‘ );
                }else if( errorType == ‘timeout‘ ){
                    MS.messShow( ‘请求超时,请稍后再试!‘ );
                }
            },
            complete : function(xhr, status){
                clearTimeout( $timer );
                if( ajaxSettings.isLoading == false ){ return; }
                $timer = setTimeout( MS.loading.hide, 100 );
            }
        };
        // 扩展默认参数
        if ( options ) {
            //是否显示loading
            ( options.isLoading == false ) ? ajaxSettings.isLoading = false : ajaxSettings.isLoading = true;
            ajaxSettings = $.extend( ajaxSettings, options );
        }
        return $.ajax( ajaxSettings );
    }
    MS.util.request = MS.request = MS.request || __request;
})();
//登陆成功后保存用户的手机号和昵称到cookie
;(function(){
    MS.userInfo = {
        setNikeName : function(nikeName){
            MS.cookie.set( ‘nikeName‘, nikeName );
        },
        setPhone:function(phones){
            MS.cookie.set( ‘phone‘, phones );
        },
        getNikeName : function() {
            return MS.cookie.get( ‘nikeName‘ );
        },
        getPhone : function() {
            return MS.cookie.get( ‘phone‘ );
        }
    };
})();
;(function(){
    MS.util = MS.util || {};
    MS.util.addSheet = MS.util.addSheet || function( css ) {
        // 当为 IE 浏览器的时候
        // 将 opacity 样式全部替换为 filter:alpha(opacity) 方式设置半透明
        if ( !-[ 1, ] ) {
            css = css.replace( /opacity:\s*(\d?\.\d+)/g, function( $, $1 ) {
                $1 = parseFloat( $1 ) * 100;
                if ( $1 < 0 || $1 > 100 ) {
                    return "";
                }
                return "filter:alpha(opacity=" + $1 + ");"
            } );
        }
        css += "\n";//增加末尾的换行符,方便在firebug下的查看。
        var doc = document, head = doc.getElementsByTagName( "head" )[ 0 ],
        styles = head.getElementsByTagName( "style" ), style, media;
        if ( styles.length === 0 ) {//如果不存在style元素则创建
            if ( doc.createStyleSheet ) {    //ie
                doc.createStyleSheet();
            } else {
                style = doc.createElement( ‘style‘ );//w3c
                style.setAttribute( "type", "text/css" );
                head.insertBefore( style, null )
            }
        }
        // getElementsByTagName 的返回类型为 NodeList ,
        // 在从 NodeList 中读取对象时,
        // 都会重新搜索一次满足条件的对象
        style = styles[ 0 ];
        /*
         style标签media属性常见的四种值
         screen 计算机屏幕(默认值)。
         handheld 手持设备(小屏幕、有限的带宽)。
         print  打印预览模式 / 打印页。
         all  适合所有设备。
         */
        media = style.getAttribute( "media" );
        // 当 media 不为 screen 且为空
        if ( media === null && !/screen/i.test( media ) ) {
            style.setAttribute( "media", "all" );
        }
        if ( style.styleSheet ) {    //ie
            style.styleSheet.cssText += css;//添加新的内部样式
        } else if ( doc.getBoxObjectFor ) {
            style.innerHTML += css;//火狐支持直接innerHTML添加样式表字串
        } else {
            style.appendChild( doc.createTextNode( css ) )
        }
    };
})();
/*
 * 信息提示浮层
 * 使用方法:MS.messShow(info,url,btnInfo)
 * info:弹窗主体的内容,url:点击确定时的链接,btnInfo:将确定按钮的文字换成其他文字
 * 当仅传入info时,窗体只显示一个确定按钮。
 * 点击确定、取消按钮时,函数返回true
 */
;(function(){
    //获取窗口可视范围的高度
    function getClientHeight(){
        var h = 0;
        var docH = $( document ).height(), winH = $( window ).height(), h = Math.max( docH, winH );
        return h;
    }
    //给页面添加弹出层的html
    function messHtml(){
        var $containerWindow = $(‘#container_window‘);
        var $html = ‘<div class="mess-box z-act"><div class="mess-box-info"><div class="mess-content">您的信息不全,请您补全信息后再进行投资</div><div class="mess-btn"><ul><li class="sure"><a href="javaScript:;">确定 </a><span>|</span></li><li class="cancel"><a href="javaScript:;">取消</a></li></ul></div></div></div>‘ ;
        if( !$containerWindow.length ){
            var $container = $(‘<section class="container" id="container_window"></div>‘);
            $container.append( $html );
            $("body").append( $container );
        }
    }
    //弹窗信息提示
    function messShow(info,url,btnInfo){
        messHtml();//给页面添加弹出层的html
        var hgh = getClientHeight();//获取窗口可视范围的高度
        $(".mess-box").show();
        $(".mess-box").css("height",hgh+"px");
        $("body").css("height",hgh+"px");
        $("body").css("overflow","hidden");
        if(info){//弹出框的主体信息,当其为空时显示默认信息,不为空时赋值
            $(".mess-content").text(info);
        }

if(url == undefined || url==""){//当url为空的时候,仅显示确定按钮
            onlyShowSure();//仅显示确定一个按钮
        }else{
              $(".mess-btn .sure a").attr("href",url);//当url存在的时候为确定按钮赋值
        }

if(btnInfo == "" || btnInfo){//btnInfo为确定按钮传入的值。
            if(btnInfo == ""){
                 onlyShowSure();//仅显示确定一个按钮
            }else{
                $(".mess-btn .sure a").text(btnInfo);//为确定按钮赋值
            }
        }

$(".mess-btn .cancel").off("click",boxHide).on("click",boxHide);
    }

//仅显示确定一个按钮
    function onlyShowSure(){
        $(".mess-btn .sure").off("click",boxHide).on("click",boxHide);
        $(".mess-btn li.sure").css("width","100%");
        $(".mess-btn li.cancel").hide();
        $(".mess-btn .sure span").hide();
    }

//隐藏弹出框
    function boxHide(){
        $(".mess-box").hide();
        $("body").css("overflow","auto");
        return true;
    }

MS.messShow = messShow;
})();
//获取URL参数
;(function(){
    function getQueryStringArgs(){
        var qs = (location.search.length > 0 ? location.search.substring(1) : "");
        var args = {};
        var items = qs.length ? qs.split("&") : [];
        var item = null,
            name = null,
            value = null,
            i = 0,
            len = items.length;
        for(i = 0; i< len;i++){
            item = items[i].split("=");
            name = decodeURIComponent(item[0]);
            value = decodeURIComponent(item[1]);
            if(name.length){
                args[name] = value;
            }
        }
        return args;
    }
    MS.getQueryStringArgs = getQueryStringArgs;
})();

时间: 2024-10-11 01:43:25

js公共方法的相关文章

web开发过程中经常用到的一些公共方法及操作

1.JSON转换操作 包含List转换成Json的默认格式:List转换成Json处定义格式:对象转换为Json:对象集合转换Json:普通集合转换Json:DataSet转换为Json:Datatable转换为Json:DataReader转换为Json #region 私有方法 /// <summary> /// 过滤特殊字符 /// </summary> private static string String2Json(String s) { StringBuilder s

Vuex的this.$store.commit和在Vue项目中引用公共方法

2018年11月22日 20:50:29 Funfction_Zero 阅读数 3230 1.在Vue项目中引用公共方法 作为一个新人小白,在使用vue的过程中,难免会遇到很多的问题,比如某个方法在很多组件中都能用的上,如果在每个组件上都去引用一次的话,会比较麻烦,增加代码量.怎么做比较好呢,话不多说直接看代码把 首先 要在main.js中引入公共js.然后,将方法赋在Vue的原型链上.像图中这样. 然后在需要的组件上去引入这个方法 mouted (){ //调用方法 this.common.l

盈创动力之 JS校验方法

var IS_NULL = 128; // 10000000var IS_FULL = 64; // 01000000var IS_HALF = 32; // 00100000var IS_ASCII = 16; // 00010000var IS_NUM = 8; // 00001000var IS_DATE = 4; // 00000100var IS_PHONE = 2; // 00000010var IS_EMAIL = 1; // 00000001var IS_NOT_NULL = 0

公共方法

一些公共方法可以放入application中,项目工程在运行过程中,先运行application,再执行activity. 而且,application与activity的生命周期不同.application的生命周期从启动项目开始,到整个项目关闭之后结束,而activity的生命周期短. http://www.docin.com/p-478636767.html

Js apply 方法 具体解释

Js apply方法具体解释 我在一開始看到javascript的函数apply和call时,很的模糊,看也看不懂,近期在网上看到一些文章对apply方法和call的一些演示样例,总算是看的有点眉目了,在这里我做例如以下笔记,希望和大家分享..  如有什么不正确的或者说法不明白的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和call的差别在哪里 2.        什么情况下用apply,什么情况下用call 3.        ap

iOS 常用公共方法

iOS常用公共方法 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error]; if (error) { #ifdef DEBUG NSLog(@&quo

oneThink公共方法

1. 常用公共方法 1 <?php 2 // +---------------------------------------------------------------------- 3 // | OneThink [ WE CAN DO IT JUST THINK IT ] 4 // +---------------------------------------------------------------------- 5 // | Copyright (c) 2013 http:

调用JS的方法

触发javascript写的方法: 1.在button的click直接写JS语句调用 <button type="button" onclick="alert('Welcome!')">点击这里</button> 2.在button的click绑定js方法,点击时会调用 <script> function myFunction() { x=document.getElementById("demo"); //

JS replace()方法-字符串首字母大写

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换所有匹配的字符串,否则是只替换第一个匹配串.第二个参数可以是字符串,也可以是函数.$1.$2...表示与正则表达式匹配的文本. There are many ways we can make a difference. Global change starts with you. Sign up f