【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")>) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>){
return "Gecko";
} }
alert("您的浏览器类型为:"+getOs());
-->
</script>
【JavaScript】封装实用方法【持续积累】的更多相关文章
- javascript代码实用方法实现
javascript代码实用方法实现 针对现在大家平时开发中,都会写一些重复性的js处理代码,今天总结了几个比较常用的方法实现.获取get请求参数.去字符串空格. 1.获取get请求中的参数 ...
- 拾遗----javascript一些实用方法
1. join() join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. var ids = []; for(var i = 0 ...
- JavaScript封装一个函数效果类似内置方法concat()
JavaScript封装一个函数效果类似内置方法concat() 首先回忆concat()的作用: concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个 ...
- JavaScript常见调试方法
编辑导语:javascript调试方法,常见使用alert和console来定位出错和输出的结果是否是想要的,在chrome中,还可以使用断点来看运行的情况等,本文介绍了比较全面的调试方法,你知道co ...
- JavaScript 字符串实用常操纪要
JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...
- 使用jQuery封装实用函数
一.引言 项目开发中,前端会有一个辅助工具类的js文件,比如cookie的操作,团队成员自己封装的方法.大多数时候,我们开发人员自己都是写一个全局函数,不考虑后期维护人员也会写相同的代码,然后造成代码 ...
- JavaScript封装
js封装就是把使用方式简单化,内部逻辑和使用解耦.使用人员知道参数和返回值就可以了,其他不用使用人员设置. 封装就是将属性,方法,字段等封装成类. JavaScript封装方法 1,函数方式 func ...
- javaScript封装的各种写法
在javascript的世界里,写法是个神奇的现象,真是百家齐开放啊!每次看到老外写的js组件,思想和写法都怪异,就没看到一个js结构基本相同的代码出来.今天,我就来谈谈js写法,我在开发过程中,也写 ...
- 像jQuery那样,采用链式方法,封装一个方法:CSS()
主要思路就是:返回this对象,将所获取的操作元素放入一个数组中.在原型中添加拓展方法 <html> <head> <title></title> &l ...
随机推荐
- vim 常用指令
其他命令 <c-L> 重绘屏幕 <c-z> 挂起vim回到shell,想继续vim只需要输入 fg <c-x-f> 文件路径提示 <c-N> 当前文件中 ...
- php使用protobuf3
protoc的介绍,安装 1.定义一个protoc 文件 示例:person.proto syntax="proto3"; //声明版本,3x版本支持php package tes ...
- idea导入maven项目,找不到jar包,出现红色波浪线【转】
参考链接 点击跳转
- python语法_内置函数
a = filter(函数名,序列) 返回一个迭代器对象/.函数里必须加过滤条件 ret = ['a','b','c','d','e'] def ft(s): if s != 'a': return ...
- Redis两种方式实现限流
案例-实现访问频率限制: 实现访问者 $ip 在一定的时间 $time 内只能访问 $limit 次. 非脚本实现 private boolean accessLimit(String ip, int ...
- AIO系列文档(2)----TIO使用
AIO系列文档(1)----图解ByteBuffer中介绍了ByteBuffer用法,下面通过介绍t-io介绍如何使用: hello world例子简介 本例子演示的是一个典型的TCP长连接应用,代码 ...
- 版本号严格遵守semver语义化标准
地址:http://semver.org/lang/zh-CN/?spm=a219a.7629140.0.0.GUJMXE 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递 ...
- 如何理解Python装饰器
如何理解Python装饰器?很多学员对此都有疑问,那么上海尚学堂python培训这篇文章就给予答复. 一.预备知识 首先要理解装饰器,首先要先理解在 Python 中很重要的一个概念就是:“函数是 F ...
- SDL 开发实战(五): SDL 纹理渲染
本文我们讲一下如何使用SDL_Texture将视频纹理渲染出来. 1. SDL 视频渲染相关对象 SDL 视频渲染主要涉及到四个对象:SDL_Window.SDL_Render.SDL_Texture ...
- Python开发虚拟环境使用virtualenvwrapper的搭建及pycharm链接步骤
virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包.创建的环境是独立的,互不干扰,无需sudo ...