整理一篇工作中的JavaScript工作脚本笔记,学而三省吾身。

(1) 获取Url绝对路径

functiongetUrlRelativePath()  {    varurl=document.location.toString();    vararrUrl=url.split("//");    varstart=arrUrl[1].indexOf("/");    varrelUrl=arrUrl[1].substring(start);//stop省略,截取从start开始到结尾的所有字符    if(relUrl.indexOf("?")!=-1){      relUrl=relUrl.split("?")[0];    }    returnrelUrl;  }

(2) 获取Url请求参数

functionGetRequest(){varurl=location.search;//获取url中"?"符后的字串vartheRequest=newObject();if(url.indexOf("?")!=-1){varstr=url.substr(1);strs=str.split("&");for(vari=0;i<strs.length;i++){theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);}}returntheRequest;}varRequest=newObject();Request=GetRequest();

(3) 获取特定请求参数

functiongetQueryString(name){varreg=newRegExp('(^|&)'+name+'=([^&]*)(&|$)','i');varr=window.location.search.substr(1).match(reg);if(r!=null){returnunescape(r[2]);}returnnull;}//这样调用:alert(GetQueryString("参数名1"));

(4) stringify函数
将现有的对象转换为JSON字符串, 则可以使用 JSON.stringify(obj)函数

(5) setTimeOut函数
javascript延时3秒执行method函数
setTimeout(function(){ method()},3000);

(6) js 获取当前年月日时分秒星期

$("#aa").click(function(){vardate=newDate();this.year=date.getFullYear();this.month=date.getMonth()+1;this.date=date.getDate();this.day=newArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六")[date.getDay()];this.hour=date.getHours()<10?"0"+date.getHours():date.getHours();this.minute=date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes();this.second=date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds();varcurrentTime="现在是:"+this.year+"年"+this.month+"月"+this.date+"日"+this.hour+":"+this.minute+":"+this.second+""+this.day;alert(currentTime);});

(7) Ajax请求显示加载中提示

$.ajax({type:"post",url:loadurl,async:true,i:Math.random(),success:function(data){$("#tra_"+id).html(data);}beforeSend:function(){$("#tra_"+id).html('加载中...');}});

(8) 大量if…else…的替换方法

遇到需要写很多if…else…的情况,或许可以考虑如下的哈希字典匹配的方法,或者用状态模式实现

例子:

/*不用if...else,改成哈希字典匹配的方法*///if...else...方法/*varitemTypeStr='';if(rowdata.itemType=='1'){itemTypeStr='行政许可';}elseif(rowdata.itemType=='2'){itemTypeStr='非行政许可';}elseif(rowdata.itemType=='3'){itemTypeStr='公共服务事项';}*/varitemTypeReg={'0':'','1':'行政许可','2':'非行政许可','3':'公共服务事项','4':'备案','5':'其他','6':'行政征收','7':'行政确认','8':'行政年检','9':'其他行政权力','10':'行政处罚','11':'行政强制','12':'行政给付','13':'行政检查','14':'行政奖励','15':'行政裁决'}varitemType=rowdata.itemType;//itemType为1~15的数,哈希匹配的方法,例子仅供参考itemType=itemTypeReg[itemType];returnitemType;

(9) 字符串长度获取(支持中文)

获取字符串的长度,有时候经常就是str.length直接获取,其实在字符串没有中文的情况是可以的,但是一旦有中文,就会发现这样获取其实是不正确的。因为中文占两个字节

functiongetStrRealLen(str){///<summary>获得字符串实际长度,中文2,英文1</summary>///<paramname="str">要获得长度的字符串</param>varrealLength=0,len=str.length,charCode=-1;for(vari=0;i<len;i++){charCode=str.charCodeAt(i);if(charCode>=0&&charCode<=128)realLength+=1;elserealLength+=2;}returnrealLength;};前端进阶者学习交流q-u-n---731771211