【JavaScript】封装实用方法【持续积累】

介绍

    主要记录一些平时积累或者常用方法或者小技巧的集合。以便在以后用到还要重复写或者忘记。

还有就是如果遇到好的方法封装值得收藏进行收藏。这里主要是记录一些包含JavaScript的一些积累。没有什么样式和页面的操作。

可能会存在一些你认为不是很好或者用不到的。如果你有更好的请指正。交流分享,方便大家,一起进步。

 

1.根据文件名切换附件显示图片

        /**
        *@method
        *@param {name} 文件全称
        *@returns 返回该文件类型对应的图片地址
        */
        VerTypeToImage: function (name) {
            var indexBegin = name.lastIndexOf(".");
            var indexEnd = name.length;
            var type = name.substring(indexBegin + 1, indexEnd);
            switch (type) {
                case "jpg":
                    return "/Content/images/area/NewDocument_Areas/icon_img.png";
                case "word":
                    return "/Content/images/area/NewDocument_Areas/icon_word.png";
                case "excel":
                    return "/Content/images/area/NewDocument_Areas/icon_excel.png";
                case "ppt":
                    return "/Content/images/area/NewDocument_Areas/icon_ppt.png";
                case "pdf":
                    return "/Content/images/area/NewDocument_Areas/icon_pdf.png";
                case "zip":
                    return "/Content/images/area/NewDocument_Areas/icon_zip.png";
                default:
                    return "/Content/images/area/NewDocument_Areas/icon_other.png";
            }
        }

2.根据文件类型实现上传文件限制特定类型

        /**
        *@method
        *@param {name} 文件全称
        *@returns 返回该文件类型是否存在
        *@desc turn:代表存在运行 false:代表不存在
        */
        VerType: function (name) {
            //运行通过的文件类型集合
            var allowtype = ["doc", "docx", "xls", "xls", , "pdf", "ppt", "pptx", "zip", "jpg", "png", "jpeg", "bmp", "gif"]
            var thisfiletype = name.substring(name.lastIndexOf(".") + 1, name.length).toLowerCase();
            if (allowtype.inArray(thisfiletype) == -1) {
                console.log("不存在返回")
                return false;
            } else {
                console.log("存在返回")
                return true;
            }
        }

 3.数组扩展判断是否存在某个指定值

                            Array.prototype.inArray = function (val) {
                                for (var i = 0; i < this.length; i++) {
                                    if (this[i] == val) return i;
                                }
                                return -1;
                            };

 4.数组扩展实现删除指定值

                                //扩展数组删除
                                Array.prototype.indexOf = function (val) {
                                    for (var i = 0; i < this.length; i++) {
                                        if (this[i] == val) return i;
                                    }
                                    return -1;
                                };

                                Array.prototype.remove = function (val) {
                                    var index = this.indexOf(val[0]);
                                    if (index > -1) {
                                        this.splice(index, 1);
                                    }
                                };

 5.数组扩展不允许添加重复元素

//重写Array中的pushDistinct方法,向数组中添加值不重复的元素
Array.prototype.pushDistinct = function (val) {
    var index = this.indexOf(val);
    if (index == -1) {
        this.push(val);
    }
};

 6.冒泡排序

      /**
      *@method
      *@param {data} 要排序数组
      *@returns 返回排序后的数组
      */
    bubble: function(data) {
        for (i = 0; i < data.length - 1; i++) {
            for (j = i + 1; j < data.length; j++) {
                var nowValue = data[i];
                if (parseInt(nowValue) > parseInt(data[j])) {
                    var nextValue = data[j];
                    data[j] = nowValue;
                    data[i] = nextValue;
                }
            }
        }
        return data;
    }

 7.递归

      /**
      *@method
      *@param {n} 一个数组
      *@returns 返回从1-n的和
      */
    function sum(n) {
        return sum(n - 1) + n;
    }

 8.跨域请求jsonp

             /**
             *@method 跨域请求jsonp
             *@param {url} 请求地址
             *@param {data} 请求参数
             *@param {func} 回调函数
             * */
            function(url, data, func) {
                $.ajax({
                    url: url,
                    dataType: "jsonp",
                    jsonp: "callback", //需要和服务端回掉方法对应
                    cache: false,
                    data: data,
                    success: function(data) {
                        func(data);
                    }
                });
            }

 

 9.原生js请求

             /**
             *@method 原生js请求
             *@param {type} 请求类型 get post
             *@param {url} 请求地址
             *@param {data} 请求数据
             *@param {funSusses} 成功回调
             *@param {funFailure} 失败回调
             *@returns 返回从1-n的和
             */
            function(type, url, data, funSusses, funFailure) {
                //1.创建xhr对象
                var xhr = null;
                if(window.XMLHttpRequest) {
                    //标准浏览器
                    xhr = new XMLHttpRequest();
                } else {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP")
                };
                //2.准备发送前的参数
                xhr.open(type, url, true);
                //3.执行发送动作
                if(type == "get") {
                    xhr.send(null);
                } else if(type == "post") {
                    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                    xhr.send(data);
                };
                //第四步:指定回调函数
                xhr.onreadystatechange = function() {
                    if(this.readyState == 4) {
                        if(this.status == 200) {
                            funSusses(xhr.responseText)
                        } else {
                            funFailure(xhr.responseText)
                        }
                    }
                };

            }

 10.浏览器版本判断

这个为从网上收藏版本,复制的有点多

<script language="JavaScript"> 
<!-- 
function getOs() 
{ 
var OsObject = ""; 
if(navigator.userAgent.indexOf("MSIE")>0) { 
return "MSIE"; 
} 
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ 
return "Firefox"; 
} 
if(isSafari=navigator.userAgent.indexOf("Safari")>0) { 
return "Safari"; 
} 
if(isCamino=navigator.userAgent.indexOf("Camino")>0){ 
return "Camino"; 
} 
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ 
return "Gecko"; 
} 

} 
alert("您的浏览器类型为:"+getOs()); 
--> 
</script>
View Code

 

posted @ 2018-10-17 09:06  YanBigFeg  阅读(355)  评论(0编辑  收藏  举报