js之:部分常用方法封装
获取引用js的绝对路径:
var getPath = function(){ var jsPath = document.currentScript ? document.currentScript.src : function(){ var js = document.scripts ,last = js.length - 1 ,src; for(var i = last; i > 0; i--){ if(js[i].readyState === 'interactive'){ src = js[i].src; break; } } return src || js[last].src; }(); return jsPath.substring(0, jsPath.lastIndexOf('/') + 1); }() console.log(decodeURIComponent)
获取节点的style属性值:
var getStyle = function(node, name){ var style = node.currentStyle ? node.currentStyle : win.getComputedStyle(node, null); return style[style.getPropertyValue ? 'getPropertyValue' : 'getAttribute'](name); };
本地内存相关
// 本地存储相关 localStorage: { getItem: function(key) { return JSON.parse(localStorage.getItem(key)); }, setItem: function(key, data) { var d = (typeof data === 'object' || typeof data === 'array') ? JSON.stringify(data) : data; localStorage.setItem(key, d); }, removeItem: function(key) { localStorage.removeItem(key); }, clear: function() { localStorage.clear(); } }
cookie相关
setCookie: function(name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + (expiredays || 30)); document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exdate.toGMTString(); }
getCookie: function(name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if (arr = document.cookie.match(reg)) { return unescape(arr[2]); } else { return null; } }
delCookie: function(name) { this.setCookie(name, "", -1); },
日期相关:
//日期 Date.prototype.pattern = function(fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时 "H+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; var week = { "0": "/u65e5", "1": "/u4e00", "2": "/u4e8c", "3": "/u4e09", "4": "/u56db", "5": "/u4e94", "6": "/u516d" }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } if (/(E+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[this.getDay() + ""]); } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return fmt; };
// 时间转10位时间戳 get10Time: function(time) { var date = time ? new Date(time) : new Date(); return Math.round(date.getTime() / 1000); }, // 10位时间戳转时间 timeToStr: function(time, fmt) { return new Date(time * 1000).pattern(fmt || 'yyyy-MM-dd'); },
//秒数转时分秒 formatSeconds: function(second) { var theTime = parseInt(second); // 秒 var theTime1 = 0; // 分 var theTime2 = 0; // 小时 // alert(theTime); if (theTime > 60) { theTime1 = parseInt(theTime / 60); theTime = parseInt(theTime % 60); // alert(theTime1+"-"+theTime); if (theTime1 > 60) { theTime2 = parseInt(theTime1 / 60); theTime1 = parseInt(theTime1 % 60); } } var result = "" + parseInt(theTime) + "秒"; if (theTime1 > 0) { result = "" + parseInt(theTime1) + "分" + result; } if (theTime2 > 0) { result = "" + parseInt(theTime2) + "小时" + result; } return result; },
url相关:
// 查询当前url中的参数的值 getQueryString: function(name, url) { if (url === undefined) { url = $$.getUrl(); } if (url.indexOf('?') == -1) { return undefined; } var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var q = url.split("?"); var r = q[1].match(reg); if (r != null) return unescape(r[2]); }, // 当前url getUrl: function() { return location.href; },