原生Javascript封装的一些常用函数

/**
 * 得到ajax对象
 */
function getajaxHttp() {
    var xmlHttp;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("您的浏览器不支持AJAX");
                return false;
            }
        }
    }
    return xmlHttp;
}

/**
 * 发送ajaxGet请求
 * @param url
 */
function ajaxGet(url){

    var xmlHttp  = getajaxHttp();
    xmlHttp.open("GET",url);
    xmlHttp.send(null);
    xmlHttp.onreadystatechange = function() {
        if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
            alert('success');
        } else {
            alert('fail');
        }
    }
}

/**
 * 发送ajaxPost请求
 * @param url
 * @param data
 */
function ajaxPost(url,data){

    var xmlHttp  = getajaxHttp();
    xmlHttp.open("POST",url);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.send(data);
    xmlHttp.onreadystatechange = function() {
        if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
            alert('success');
        } else {
            alert('fail');
        }
    }
}

/**
 *
 * @param {Object} el HTML Element
 * @param {Object} type 事件类型
 * @param {Object} fn 事件handler
 */
function addEvent(el, type, fn){
    if(el.addEventListener){
        el.addEventListener(type, fn, false);
    }else{
        el['e' + fn] = function(){
            fn.call(el, window.event);
        };
        el.attachEvent('on'+type, el['e'+fn]);
    }
}

/**
 * 删除事件
 * @param el
 * @param type
 * @param fn
 */
function removeEvent(el, type, fn){
    if(el.removeEventListener){
        el.removeEventListener(type, fn, false);
    }else if(el.detachEvent){
        el.detachEvent('on' + type, el['e'+fn]);
    }
}

/**
 * 根据id获取元素
 * @param el
 * @returns {Element}
 */
function getEl(el){
    return document.getElementById(el);
}

/**
 * 判断是否为对象类型
 * @param obj
 * @returns {boolean}
 */
RegExp.isObject = function (obj) {

    return (typeof obj == 'object') && obj.constructor == Object;

};

/**
 * 验证一个字符串时候是email
 * @param str
 * @returns {boolean}
 */
RegExp.isEmail = function (str) {

    var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)*\.[\w-]+$/i;

    return emailReg.test(str);

};

/**
 * 验证一个字符串是否是URL
 * @param str
 * @returns {Array|{index: number, input: string}}
 */
RegExp.isUrl = function (str) {

    var patrn = /^http(s)?:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\:+!]*([^<>])*$/;

    return patrn.exec(str);

};

/**
 * 转换时间戳
 * @param nS
 * @returns {string}
 */
function getLocalTime(nS) {
    return new Date(parseInt(nS) * 1000).toLocaleString().replace(/|/g, "-").replace(//g, " ");
}

/**
 * 将文件大小转成合适的刻度
 * @param nS
 * @returns {string}
 */
function fomateFileSize(nS) {
    if (nS < 1024) {
        return (nS / 1).toFixed(1) + " B";
    } else if (nS < Math.pow(1024, 2) && nS > 1024) {
        return (nS / Math.pow(1024, 1)).toFixed(1) + " KB";
    } else if (nS < Math.pow(1024, 3) && nS > 1024 ^ 2) {
        return (nS / Math.pow(1024, 2)).toFixed(1) + " MB";
    } else if (nS < Math.pow(1024, 4) && nS > 1024 ^ 3) {
        return (nS / Math.pow(1024, 3)).toFixed(1) + " GB";
    } else if (nS < Math.pow(1024, 5) && nS > 1024 ^ 4) {
        return (nS / Math.pow(1024, 4)).toFixed(1) + " TB";
    }
}

你可能感兴趣的:(javascript)