文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>AppBaseJs 类库 网上常用的javascript函数及其他js类库写的

AppBaseJs 类库 网上常用的javascript函数及其他js类库写的

时间:2010-08-26  来源:与时俱进

AppBaseJs类库。一个借鉴了网上常用的函数及其他js类库写的,方便大家的调用。 代码如下: /*-----------------------------------  Web Application JavaScript Library  2009.11 janchie  ------------------------------------*/ //String原生对象扩展 置空左右端空格  String.prototype.trim = function(){  return this.replace(/(^[\s\n\t\r]*)|([\s\n\r\t]*$)/g, "");  };  //Date原生对象扩展 格式化输出  Date.prototype.format = function (string) {  var self = this;  var p = function p(s) {  return (s.toString().length == 1) ? "0" + s : s;  };  return string ? string.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,  function (string) {  switch (string) {  case "hh": return p(self.getHours() < 13 ? self.getHours() : (self.getHours() - 12));  case "h": return self.getHours() < 13 ? self.getHours() : (self.getHours() - 12);  case "HH": return p(self.getHours());  case "H": return self.getHours();  case "mm": return p(self.getMinutes());  case "m": return self.getMinutes();  case "ss": return p(self.getSeconds());  case "s": return self.getSeconds();  case "yyyy": return self.getFullYear();  case "yy": return self.getFullYear().toString().substring(2, 4);  case "dddd": return self.getDayName();  case "ddd": return self.getDayName(true);  case "dd": return p(self.getDate());  case "d": return self.getDate().toString();  case "MMMM": return self.getMonthName();  case "MMM": return self.getMonthName(true);  case "MM": return p((self.getMonth() + 1));  case "M": return self.getMonth() + 1;  case "t": return self.getHours() < 12 ? Date.CultureInfo.amDesignator.substring(0, 1) : Date.CultureInfo.pmDesignator.substring(0, 1);  case "tt": return self.getHours() < 12 ? Date.CultureInfo.amDesignator : Date.CultureInfo.pmDesignator;  case "zzz":  case "zz":  case "z": return "";  }) : this.toString();  };  /*------------------------------------*/ //声明对象  var App = {};  //对象继承或属性合并  App.extend = function(obj, hash) {  this.each(hash, function(key, value) {  obj[key] = value;  });  return obj;  };  //遍历  App.each = function(obj, func, context) {  var length = obj.length, i = -1;  if(length !== undefined) {  while(++i < length) if(func.call(context, obj[i], i, obj, length) === false) break;  else for(var key in obj) if(obj.hasOwnProperty(key)) if(func.call(context, key, obj[key], obj) === false) break;  return obj;  };  (function(doc, win){  var string = Object.prototype.toString,  quirks = doc.compatMode === "BackCompat",  docelem = doc.documentElement,  ua = win.navigator.userAgent.toLowerCase(),  version = (ua.match( /.(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],  isChrome = /chrome/.test(ua),  isWebKit = /webkit/.test(ua),  isSafari = !isChrome && isWebKit,  isOpera = /opera/.test(ua),  isIE = /msie/.test( ua ) && !isOpera,  isFF = /firefox/.test(ua);  //Dom加载  doc.ready = function(func) {  var isReady = false,doReady = function() {  if (isReady) return;  isReady = true; func();  };  if (isIE) {  if (docelem.doScroll && win.self == win.top) {  (function() {  if (isReady) return;  try {  docelem.doScroll("left");  } catch (error) {  setTimeout(arguments.callee, 0);  return;  doReady();  })();  }else {  if (isReady) return;  this.attachEvent("onreadystatechange", function() {  if (doc.readyState === "complete") {  doc.detachEvent("onreadystatechange", arguments.callee);  doReady();  });  win.attachEvent('onload', doReady);  }else if (isWebKit && version < 525) {  (function() {  if (isReady) return;  if (/loaded|complete/.test(doc.readyState))  doReady();  else  setTimeout(arguments.callee, 0);  })();  win.addEventListener('load', doReady, false);  }else {  if (!isFF)  this.addEventListener("DOMContentLoaded", function() {  doc.removeEventListener("DOMContentLoaded", arguments.callee, false);  doReady();  }, false);  this.addEventListener('load', doReady, false);  };  App.extend(App,{  //类型检测  isArray: function(v) { //是否为数组  return string.apply(v) === "[object Array]";  },  isFunction: function(v) { //是否为函数体  return string.apply(v) === "[object Function]";  },  isNumber: function(v) { //是否为数字  return typeof v === "number" && isFinite(v);  },  isDate: function(v) { //是否为日期  return string.apply(v) === "[object Date]";  },  isElement: function(v) { //是否为Dom元素节点  return !!(v && v.nodeType === 1);  },  // 浏览器检测  isOpera: isOpera,  isChrome: isChrome,  isWebKit: isWebKit,  isSafari: isSafari,  isIE: isIE,  isFF: isFF,  isQuirks:quirks,  getVersion:version, //取id元素  $: function(id) {  return typeof id === "string" ? doc.getElementById(id) : id;  },  //取name元素集合  $N:function(name){  return doc.getElementsByName(name);  },  //取tag元素集合  $T:function(tag, root){  return (root || doc).getElementsByTagName(tag);  },  //按属性名(是否包含)、值、范围取元素集合  $A:function(attrName, attrValue, tag, root){  var elems = doc.all ? doc.all : this.$T( tag || "*",root || doc), result = [],  attVal = (typeof attrValue != "undefined")? new RegExp("(^|\\s)" + attrValue + "(\\s|$)") : null;  for(var i=0; i<elems.length; i++){  attr = elems[i][attrName] || elems[i].getAttribute(attrName);  if(typeof attr === "string" && attr.length > 0){  if(typeof attrValue === "undefined" || (attVal && attVal.test(attr))){  result.push(elems[i]);  return result;  },  //取body元素  $B: doc.body || docelem,  //取Class属性元素集合  $C:function(attrValue, tag, root){  return this.$A("className",attrValue, tag, root);  },  //取浏览器窗体宽度  getWinWidth: win.innerWidth || docelem.clientWidth || doc.body.clientWidth,  //取浏览器窗体高度  getWinHeight: win.innerHeight || docelem.clientHeight || doc.body.clientHeight,  //取元素样式  getStyle: function(elem,name){  if(elem.style[name]){  return elem.style[name];  }else if(elem.currentStyle){  return elem.currentStyle[name];  }else if(doc.defaultView && doc.defaultView.getComputedStyle){  name = name.replace(/([A-Z])/g,"-$1");  name = name.toLowerCase();  var s = doc.defaultView.getComputedStyle(elem,"");  return s && s.getPropertyValue(name);  }else{  return null;  },  //获取元素屏幕坐标值  getPosition: function() {  return docelem.getBoundingClientRect && function(o){  var pos = o.getBoundingClientRect(), root = o.ownerDocument || o.doc;  return {left:pos.left+root.documentElement.scrollLeft,top:pos.top+root.documentElement.scrollTop};  } || function(o){  var x = 0, y = 0;  do{x += o.offsetLeft;y += o.offsetTop;}while((o=o.offsetParent));  return {left:x,top:y};  };  }(),  //设置透明度  setOpacity: function (elem,num){  if(elem.filters){  elem.style.filter = "alpha(opacity="+num+")";  }else{  elem.style.opacity = num/100;  },  //隐藏或显示元素  hide: function(elem){elem.style.display = "none";},  show: function(elem){elem.style.display = "block";},  toggle: function(elem){  elem.style.display = this.getStyle(elem,"display") === "none" ?"block":"none";  },  //元素Class属性操作  addClass: function(elem, clsName) {  if (elem.className === '') {  elem.className = clsName;  }else if (elem.className !== '' && (' ' + elem.className + ' ').indexOf(' ' + clsName + ' ') === -1) {  elem.className = elem.className + ' ' + clsName;  },  removeClass: function(elem, clsName) {  if (clsName && (' ' + elem.className + ' ').indexOf(' ' + clsName + ' ') > -1) {  elem.className = (' ' + elem.className + ' ').replace(' ' + clsName + ' ', ' ').replace(/^ | $/g,'');  },  //追加Html文本对象( 支持Table )  append: function(elem, text) {  if (typeof text === "string") {  if (elem.insertAdjacentHTML){  if (elem.tagName === "TABLE"){  var html = elem.outerHTML,ep = elem.parentNode,sl = html.length;  text = html.substr(0,sl-8) + text + html.substr(sl-8,sl);  ep.insertAdjacentHTML("beforeEnd", text);  ep.replaceChild(ep.lastChild,elem);  }else{  elem.insertAdjacentHTML("beforeEnd", text);  }else {  var rlt = null, rg = doc.createRange(), fm = rg.createContextualFragment(text);  rlt ? elem.insertBefore(fm, rlt) : elem.appendChild(fm);  }else if (typeof text === "object") elem.appendChild(text);  },  //删除元素  remove:function(elem){  if (elem.parentNode) elem.parentNode.removeChild(elem);  },  //置空元素内容及子节点  empty:function(elem){  while(elem.firstChild){  elem.removeChild(elem.firstChild);  },  //图像预加载  loadimages: function(){  var a = arguments,loads = function(){  if(doc.images){ if(!doc.ps) doc.ps = [];  var i,j=doc.ps.length; for(i=0; i<a.length; i++)  if (a[i].indexOf("#")!=0){ doc.ps[j] = new Image; doc.ps[j++].src=a[i];}}  };  arguments.callee.caller ? loads():doc.ready(loads);  }, //事件绑定  bind: function () {  if (win.addEventListener) {  return function(elem, sType, fnc) {  elem.addEventListener(sType, fnc, false);  };  } else if (win.attachEvent) {  return function(elem, sType, fnc) {  elem.attachEvent("on" + sType, fnc);  };  } else {  return function(){};  }(),  //解除事件绑定  unbind: function(elem, sType, fnc){  if(elem.removeEventListener){  elem.removeEventListener(sType, fnc, false);  }else if(elem.detachEvent){  elem.detachEvent("on" + sType, fnc);  }else{  elem["on"+ sType] = null;  },  //禁止事件冒泡  stopPropagation: function(ev) {  if (ev.stopPropagation) {  ev.stopPropagation();  } else {  ev.cancelBubble = true;  },  //禁止默认事件动作  preventDefault: function(ev) {  if (ev.preventDefault) {  ev.preventDefault();  } else {  ev.returnValue = false;  },  //获取鼠标位置  getXY: function(ev){  return {  x:ev.pageX ? ev.pageX : ev.clientX + docelem.scrollLeft,  y:ev.pageY ? ev.pageY : ev.clientY + docelem.scrollTop  };  },  //绑定拖动事件  drag: function (obj, obj2){//obj:移动的对象 obj2:拖动点  obj2 = obj2 || obj; //如果不设拖动点,那么拖动点即移动的对象  var x, y, ut = this;  obj2.onmousedown = function(e){  e = e || win.event;  ut.preventDefault(e);  obj.setCapture && obj.setCapture();  x = ut.getXY(e).x - parseInt(obj.style.left);  y = ut.getXY(e).y - parseInt(obj.style.top);  docelem.onmousemove = over;  docelem.onmouseup = up;  function over(e){  e = e || win.event;  obj.style.left = ut.getXY(e).x - x + "px";  obj.style.top = ut.getXY(e).y - y + "px";  function up(){  obj.releaseCapture && obj.releaseCapture();  docelem.onmousemove = null;  docelem.onmouseup = null;  },  //绑定横向滚动事件  sliderX : function (obj,x1,x2,overEvent,upEvent){  var x, t , ut = this;  obj.onmousedown = function (e){  e = e || win.event;  ut.preventDefault(e);  obj.setCapture && obj.setCapture();  t = ut.getXY(e).x - parseInt(obj.style.left);  docelem.onmousemove = over;  docelem.onmouseup = up;  function over(e){  e = e || win.event;  x = ut.getXY(e).x - t;  if(x<x1) x=x1;  if(x>x2) x=x2;  obj.style.left = x + "px";  overEvent && overEvent(x);  function up(){  obj.releaseCapture && obj.releaseCapture();  docelem.onmousemove = null;  docelem.onmouseup = null;  upEvent && upEvent(x);  },  //绑定竖向滚动事件  sliderY : function (obj,y1,y2,overEvent,upEvent){  var y, t , ut = this;  obj.onmousedown = function (e){  e = e || win.event;  ut.preventDefault(e);  obj.setCapture && obj.setCapture();  t = ut.getXY(e).y - parseInt(obj.style.top);  docelem.onmousemove = over;  docelem.onmouseup = up;  function over(e){  e = e || win.event;  y = ut.getXY(e).y - t;  if(y<y1) y=y1;  if(y>y2) y=y2;  obj.style.top = y + "px";  overEvent && overEvent(y);  function up(){  obj.releaseCapture && obj.releaseCapture();  docelem.onmousemove = null;  docelem.onmouseup = null;  upEvent && upEvent(y);  },  //设置cookie  setCookie:function(n, v, t){  var exp = new Date();  exp.setTime(exp.getTime() + (t||24)*60*60*1000);  doc.cookie = n + "="+ escape(v) + ";expires=" + exp.toGMTString()+';path=/';  },  //获取cookie  getCookie:function(n){  var arr = doc.cookie.match(new RegExp("(^| )"+ n +"=([^;]*)(;|$)"));  if(arr != null) return unescape(arr[2]);  return null;  });  })(document,window); //日期字符串格转日期  App.parseDate = function(date){  var dt = date instanceof Date ? date: Date(date.replace("-","/"));  return isNaN(dt.getTime()) ? null : dt ;  };  //Json字符串转对象  App.parseJSON = function(jsonString) {  var result = false;  try {  result = eval('(' + jsonString + ')');  }catch (e) {};  return result;  };  //取不重复唯一值  App.getUid = function(){  return "uid"+(new Date()).getTime()+ parseInt(Math.random()*100000);  };  //获取指定范围的随机数  App.random = function (n1, n2){  return Math.floor(Math.random()*(n2-n1+1)) + n1;  };  //秒转换为毫秒  App.s2ms = function (str){  var t = str.split(":");  return t[0] * 60000 + t[1] * 1000;  };  //毫秒转换为秒  App.ms2s = function (ms){  return (ms/60000+":"+ms/1000%60).replace(/\.\d+/g,"").replace(/(^|:)(\d)(?!\d)/g,"$10$2");  };  //数字转换为编号  App.num2number = function (num, n){  return Array(n).join("0").concat(num).slice(-n);  };  //数字转化为中文  App.num2gb = function (n){  return "零一二三四五六七八九".split("")[n];  };  //Flash生成代码  App.getFlash = function (url, width, height, param){  var tagName = "", o1 = {width:width||1,   if (this.isIE){  tagName = "object ";  o1.classid = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";  o1.codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0";  o2.movie = url;  o2.quality = "high";  param && this.extend(o2, param);  }else{  tagName = "embed ";  o1.type = "application/x-shockwave-flash";  o1.pluginspage = "http://www.adobe.com/go/getflashplayer_cn";  o1.src = url;  o1.quality = "high";  param && this.extend(o1, param);  if(o1.width<2&&o1.height<2) tagName+='style="position:absolute; top:-100px;" ';  var a1=[], a2=[], i;  for(i in o1) a1.push(i+'="'+o1[i]+'"');  for(i in o2) a2.push('<param name="'+i+'" value="'+o2[i]+'" />');  return '<'+tagName+a1.join(' ')+'>'+a2.join('')+'</'+tagName+'>';  };  //播放器生成代码  App.getPlayer = function (url, width, height, param){  var wmp = ["6bf52a52-394a-11d3-b153-00c04f79faa6","application/x-mplayer2"];  var rmp = ["CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA","audio/x-pn-realaudio-plugin"];  var mp = /\.rm$/.test(url) ? rmp : wmp;  var tagName = "", o1 = {width:width||1,   if (this.isIE){  tagName = "object ";  o1.classid = "clsid:"+mp[0];  o2.url = url;  param && this.extend(o2, param);  }else{  tagName = "embed ";  o1.type = mp[1];  o1.src = url;  param && this.extend(o1, param);  if(o1.width<2&&o1.height<2) tagName+='style="position:absolute; top:-100px;" ';  var a1=[], a2=[], i;  for(i in o1) a1.push(i+'="'+o1[i]+'"');  for(i in o2) a2.push('<param name="'+i+'" value="'+o2[i]+'" />');  return '<'+tagName+a1.join(' ')+'>'+a2.join('')+'</'+tagName+'>';  };  //获取XMLHttp对象  App.xmlhttp = function (){  if (this.isFF) return new XMLHttpRequest();  var a = ["Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.5.0"];  for (var i=0,l=a.length;i<l;i++){  try{  return new ActiveXObject(a[i]);  }catch(e){}  return false;  };  //Get数据  App.get = function (url,callBack){  var x = this.xmlhttp();  x.open("get",url,true);  x.onreadystatechange = function(){  x.readyState==4 && (x.status==0||x.status==200) && callBack(x.responseText);  x.send(null);  };  //Post数据  App.post = function (url,arg,callBack){  var x = this.xmlhttp();  x.open("post",url,true);  x.setRequestHeader("Content-Length",arg.length);  x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  x.onreadystatechange = function(){  x.readyState==4 && (x.status==0||x.status==200) && callBack(x.responseText);  x.send(arg);  }; 有少量函数未经测试,欢迎大家提个意见
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载