js常用运行库总结

来源:互联网 发布:图拉丁 知乎 编辑:程序博客网 时间:2024/04/27 22:13

//判断是否为IE浏览器。

 function isIE(){
     return (document.all && window.ActiveXObject && !window.opera) ? true : false;
 }

//外部调用页面元素的onclick事件

function loadClick(){

if(isIE()){
   document.getElementById('obj_id').click();
  }else{
   var evt = document.createEvent("MouseEvents");
   evt.initEvent("click", true, true);
   document.getElementById('obj_id').dispatchEvent(evt);
 }

}

//短函数方便使用
function $G(id){
 return document.getElementById(id);
}
function $GC(t){
 return document.createElement_x(t);
}
function $GT(t){
 return document.getElementsByTagName(t);
}
//依据相同的className得到元素数组
function $$(class) {
    var el=[];
    _el=document.getElementsByTagName('*');
    for (var i=0; i<_el.length; i++){
       if (_el[i].className == class){
           el[el.length] = _el[i];
        }
   }
   return el;
}
// 判断浏览器ie6还是ie7。
function isIe6Or7(){
   var browser=navigator.appName
   var b_version=navigator.appVersion
   var version=b_version.split(";");
   var trim_Version=version[1].replace(/[ ]/g,"");
   if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE7.0"){
     alert("IE 7.0");
  }else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0"){
    alert("IE 6.0");
  }
}
// 去除字符串左右的空格。
String.prototype.trim = function(){
 return this.replace(/(^\s*)|(\s*$)/g, '');
}
 //去除字符串左边的空格。
String.prototype.trimLeft= function(){
  return this.replace(/^\s*/g,"");
}
 //去除字符串右边的空格。
String.prototype.trimRight = function(){
 return this.replace(/\s*$/g,"");
}

// 替换全部字符串。
String.prototype.replaceAll = function(srcStr,desStr){
 return this.replace(new RegExp(srcStr,"gm"),desStr))
}
//检查用户名是否由英文字母、数字以及下划线组成。
 function checkUserName(s){
  var patrn=/^(\w){1,50}$/;
  if (patrn.exec(s)){
   return true;
  } else {
   return false;
  }
 }
 //判断输入是否是大于0的数字。
function isNumCheck(str){
  if(str.match(/\D/)==null && Number(str)>0){
   return true;
  }else{
   return false;
  }
}
//检查座机或传真的电话格式
function checkTel(){ 
  var re =  /^(((\()?\d{2,4}(\))?[-(\s)*]){0,2})?(\d{7,8})$/; 
  if(re.test(document.getElementById("txtTel").value)){ 
    alert("电话号码格式正确"); 
  }else{ 
    alert("错误的电话号码"); 
  }  
}
 //判断输入是否是大于0的浮点型。
 function isFloatCheck(str){
   if(/^[0-9\.]+$/g.test(str)){
    return true;
   } else {
    return false;
   }
 }
 //检查是否有中文字符
 function checkCN(str){
   if(s.match(/[\u0391-\uFFE5]/ig)){
    return true;
   } else {
    return false;
   }
 }
 //判断e_mail格式是否正确。
function isEmailFormat(str){
  if(/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(str)){
   if(str.indexOf('..')>-1){
      return false;
   }
   str=str.trim();
   var dbCheck = 0;
   for (var i=0;i< str.length;i++){
      if(str.charAt(i)==' ') return false;
      if(str.charAt(i)=='@'){
        if(dbCheck == 0) {
         dbCheck = 1;
        }else{
         return false;
        }
      }
   }
   return true;
  } else {
   return false;
  }
}
//得到页面元素的尺寸
function dimensions(el) {
  return { width: el.offsetWidth, height: el.offsetHeight };
}
//得到鼠标当前的坐标
function mousePosition(e) {
  return { x: e.clientX + document.documentElement.scrollLeft, y: e.clientY + document.documentElement.scrollTop };
}
var Json = {//把javascript的数组或对象转换成Json格式的字符串
 toString: function(obj){
 switch(typeof(obj)){
   case 'string':
    return '"' + obj.replace(/(["\\])/g, '\\$1') + '"';
   case 'array':
    return '[' + obj.map(Json.toString).join(',') + ']';
   case 'object':
    var string = [];
    for (var property in obj) string.push(Json.toString(property) + ':' + Json.toString(obj[property]));
    return '{' + string.join(',') + '}';
   case 'number':
    if (isFinite(obj)) break;
   case false:
    return 'null';
  }
  return String(obj);
 },//把Json格式的字符串转换成javascript的数组或对象
 uate: function(str, secure){
  return ((typeof(str) != 'string') || (secure && !str.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/))) ? null : ('(' + str + ')');
 }
}
 //得到元素在荧幕上绝对真实的坐标位置
 function getAbsoultePosition(el) {
   var sLeft = 0, sTop = 0;
   var isDiv = /^div$/i.test(el.tagName);
   if (isDiv && el.scrollLeft) {
     sLeft = el.scrollLeft;
   }
   if (isDiv && el.scrollTop) {
     sTop = el.scrollTop;
   }
   var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop };
   if (el.offsetParent) {
     var tmp = getAbsoultePosition(el.offsetParent);
     r.x += tmp.x;
     r.y += tmp.y;
   }
   return r;
 }
 // IE 支持 ajax
 if (window.ActiveXObject && !window.XMLHttpRequest) {
  window.XMLHttpRequest=function() {
    return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');
  }
 }
  //封装ajax调用程序
 function exeRequest(url, handle, v) {
  var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4){
     if(xmlHttp.status == 200) {
      handle(xmlHttp.responseText);
     }
    }
    };
    xmlHttp.open("post", url);
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlHttp.send(v);
 }
//关于函数绑定事件:
Function.prototype.BindForEvent = function() {
  var __m = this, object = arguments[0], args = new Array();
  for(var i = 1; i < arguments.length; i++){
  args.push(arguments[i]);
 }
  return function(event) {
    return __m.apply(object, [( event || window.event)].concat(args));
  }
}
//关于函数绑定参数:
Function.prototype.Bind = function() {
  var __m = this, object = arguments[0], args = new Array();
  for(var i = 1; i < arguments.length; i++){
  args.push(arguments[i]);
 }
  return function() {
    return __m.apply(object, args);
  }
}
//url跨平台调用js数据
function getJsData(url){
 var _script = document.createElement("script");
 _script.type = "text/javascript";
 _script.language = "javascript";
 _script[_script.onreadystatechange === null ? "onreadystatechange" : "onload"] = function(){
  if(this.onreadystatechange){
   if(this.readyState != "complete" && this.readyState != "loaded") {return;}
  };
  setTimeout(function(){_script.parentNode.removeChild(_script)},1000);
 };
 _script.src = url; 
 document.getElementsByTagName("head")[0].appendChild(_script); 
}
 //事件的初始化类
Event = {
//判断是否出发鼠标左键事件
 isLeftClick: function(event) {
  //在ie中event.button; 在firefox中event.which
  return (((event.which) && (event.which == 1)) || ((event.button) && (event.button == 1)));
 },
 //得到鼠标的横坐标;ie不承认pageX和pageY属性 pointerX:
 function(event) {
   return event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
 },
 //得到鼠标的纵坐标
 pointerY: function(event) {
  return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
 },
 //停止事件
 stop: function(event) {
   if (event.preventDefault) {
     event.preventDefault();//在fireFox中一定要
     event.stopPropagation();
   } else {
    event.returnValue = false;//在ie中一定要
   }
 },
 //增加事件
 observe: function(element, name, observer) {
  if(element.addEventListener) {
   element.addEventListener(name, observer,false);//"false"在fireFox中一定要
  } else if (element.attachEvent) {
    element.attachEvent('on'+name, observer);
  }
 },
 //清除事件
 stopObserving: function(element, name, observer) {
   if (element.removeEventListener) {
     element.removeEventListener(name, observer, false);
   } else if (element.detachEvent) {
     element.detachEvent('on' + name, observer);
   }
  }
}

原创粉丝点击