js 類庫代碼收集分析

移除字符串多餘空格

/**
* 去除多余空格函数
* trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格
* 用法:
*     var str = "   hello ";
*     str = str.trim();
*/
if(!!!String.prototype.trim){
String.prototype.trim = function(){
	return this.replace(/(^[\\s]*)|([\\s]*$)/g, "");
}
String.prototype.lTrim = function(){
	return this.replace(/(^[\\s]*)/g, "");
}
String.prototype.rTrim = function(){
	return this.replace(/([\\s]*$)/g, "");
}
}

 

數字格式

/***是否是浮點類型**/
function isFloat(val){
	var regex = /^[+|-]?\d*\.?\d*$/; 
	if (!regex.test(val.toString())){ 
	 return false;     
	}    
	return true;
}
/****精確到小數點後幾位數****/
function floatToFixed(val,n){
	var val=val;
	if(!isFloat(val)){
		val=parseFloat(val);
	}
	try{
		return val.toFixed(n);
	} catch(err){
		var n=Math.pow(10,n);
		return Math.floor(val*n)/n;	
	}
}
/*
 * formatMoney(s,type)
 * 功能:金额按千位逗号分割
 * 参数:s,需要格式化的金额数值.
 * 参数:type,判断格式化后的金额是否需要小数位.
 * 返回:返回格式化后的数值字符串.
 */
function formatMoney(s, type) {
    if (/[^0-9\.]/.test(s)) return "0";
    if (s == null || s == "") return "0";
    s = s.toString().replace(/^(\d*)$/, "$1.");
    s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
    s = s.replace(".", ",");
    var re = /(\d)(\d{3},)/;
    while (re.test(s))
        s = s.replace(re, "$1,$2");
    s = s.replace(/,(\d\d)$/, ".$1");
    if (type == 0) {// 不带小数位(默认是有小数位)
        var a = s.split(".");
        if (a[1] == "00") {
            s = a[0];
        }
    }
    return s;
}
/*
月份補充零
//return string
*/
function monthWithTwoNum(n){
	var n=parseInt(n,10);
	if(n>=0 && n<=9){
		return '0'+n.toString();
	}
	return n.toString();
}

 

瀏覽器、元素高寬

function getBrowserW(){
	return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;//可见区域宽度
}
function getBrowserH(){
	//alert(document.documentElement.clientHeight);
	return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;//可见区域高度		
}
function getEleW(ele){
	if(typeof ele == 'string'){
		return 	document.getElementById(ele).offsetWidth;
	} else {
		return ele.offsetWidth;	
	}
}
function getEleH(ele){
	if(typeof ele == 'string'){
		return 	document.getElementById(ele).offsetHeight;
	} else {
		return ele.offsetHeight;	
	}
}

 

動態添加css&js(簡單)

/******普通動態 添加css******/
var gAryLinkStyle=[];
function includeLinkStyle(url) {
	if(gAryLinkStyle.toString().indexOf(url)!=-1){
		return;
	}
	var link = document.createElement("link");
	link.rel = "stylesheet";
	link.type = "text/css";
	link.href = url;
	document.getElementsByTagName("head")[0].appendChild(link);
	gAryLinkStyle.push(url);
}
/******普通動態 添加js******/
var gAryScriptFile=[];
function includeScriptFile(url,callback){
	if(gAryScriptFile.toString().indexOf(url)!=-1){
		!!callback&&callback();
		return false;
	}
	var script= document.createElement("script");
	script.setAttribute('type', 'text/javascript');
	if(!!callback){
		script.onload = script.onreadystatechange = function(){
			if (script.ready) {
				return false;
			}
			if (!script.readyState || script.readyState == "loaded" || script.readyState == 'complete') {
				script.ready = true;
				callback();
			}
		};
	}
	script.src=url;
	document.getElementsByTagName("head")[0].appendChild(script);
	gAryScriptFile.push(url);
}

 

瀏覽器UA信息

/****browser version****
eg: if(Browser.ie && parseFloat(Browser.ie,10)<8.0) alert('is ie and version < 8.0');
**********/
var Browser = {};
Browser.ua = navigator.userAgent.toLowerCase();
Browser.s='';
(Browser.s = Browser.ua.match(/chrome\/([\d.]+)/)) ? Browser.chrome = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/msie ([\d.]+)/)) ? Browser.ie = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/rv:([\d.]+)/)) ? Browser.ie = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/firefox\/([\d.]+)/)) ? Browser.firefox = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/opera.([\d.]+)/)) ? Browser.opera = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/version\/([\d.]+).*safari/)) ? Browser.safari = parseFloat(Browser.s[1],10) : 0;

 

獲取滾動條位置

// 说明:用 Javascript 获取滚动条位置等信息

  
function getScrollPro() 
{
    var t, l, w, h;
     
    if (document.documentElement && document.documentElement.scrollTop) {
        t = document.documentElement.scrollTop;
        l = document.documentElement.scrollLeft;
        w = document.documentElement.scrollWidth;
        h = document.documentElement.scrollHeight;
    } else if (document.body) {
        t = document.body.scrollTop;
        l = document.body.scrollLeft;
        w = document.body.scrollWidth;
        h = document.body.scrollHeight;
    }
    return { t: t, l: l, w: w, h: h };
}

function setScrollTop(v){
	if (document.documentElement && document.documentElement.scrollTop) {
       document.documentElement.scrollTop=v;
    } else if (document.body) {
       document.body.scrollTop=v;
    }
    return;
}

 

觸發事件

/****
trigger given event on element
demo: triggerEvent(document.getElementById('google'),'resize');
note: element not support window object
***/
function triggerEvent(ele,eventType){
	if( document.createEvent) { 
		try{
			var event = document.createEvent ("HTMLEvents"); 
			event.initEvent(eventType, true, true); 
			ele.dispatchEvent(event); 
		} catch(err){}
	} else if(document.createEventObject){ 
		ele.fireEvent("on"+eventType); 
	} 
}
function log(s){
	console.log(s);
}
/***new win***/
function NewWin(url){
	var a = document.createElement('a');
	a.setAttribute("href", url);
	a.setAttribute("target", "_blank");
	triggerEvent(a,'click');
	a=null;
}

 

拿css3 前綴

// JavaScript Document
;(function(w){
	w.cssPrefix=(function cssPrefix(){
		var vendors = { Webkit: 'webkit', Moz: 'Moz', O: 'o', MS: 'ms', None: '' }, prefix = '', testEl = document.createElement('div');
		for(key in vendors){
			if (testEl.style[vendors[key] + 'TransitionProperty'] !== undefined) {
			  prefix = '-' + vendors[key].toLowerCase() + '-';
			  break;
			}	
		}
		return prefix;
	}());
}(window));
//console.log(window.cssPrefix);//-webkit-

 

 Demo: xx這裡

 

檢查是否支持css3 屬性

var supportcss3 = (function() {
   var div = document.createElement('div'),
      vendors = 'Khtml Ms O Moz Webkit'.split(' '),
      len = vendors.length;
 
   return function(prop) {
      if ( prop in div.style ) return true;
 
      prop = prop.replace(/^[a-z]/, function(val) {
         return val.toUpperCase();
      });
 
      while(len--) {
         if ( vendors[len] + prop in div.style ) {
            return true;
         } 
      }
      return false;
   };
})();
 
if ( supportcss3('textShadow') ) {
   document.documentElement.className += ' textShadow';
}

 

 

extend

// JavaScript Document
function extend(destination, source) {
    for (var property in source)
      destination[property] = source[property];
    return destination;
}

 

獲得兄弟節點

function getPreviousSibling(ele){
  var preNode,ele=ele;
	while(true){
		preNode=ele.previousSibling;
		if(!!!preNode){
			preNode=null;
			break;
		}
		if(preNode.nodeType==1){
			//alert(preNode.id);
			break;
		} else {
			ele=preNode;
		}
	};
	return preNode;
}

console.log(getPreviousSibling(document.getElementById('id2')));

function getNextSibling(ele){
  var preNode,ele=ele;
	while(true){
		preNode=ele.nextSibling;
		if(!!!preNode){
			preNode=null;
			break;
		}
		if(preNode.nodeType==1){
			//alert(preNode.id);
			break;
		} else {
			ele=preNode;
		}
	};
	return preNode;
}
console.log(getNextSibling(document.getElementById('id1')));

function getSibling(elem) {
	var r = [];
	var n = elem.parentNode.firstChild;
	for ( ; n; n = n.nextSibling ) {
	    if ( n.nodeType === 1 && n !== elem ) {
	        r.push( n );
	    }
	}
	return r;
}

 

    demo: xx這裡

 

關閉瀏覽器前的提示

var isCloseWin=true;
window.onbeforeunload = function (e) { 
 //if(isCloseWin) return e.returnValue = "Note: You didn't save the data. Determined to leave?";//ie7 not ok
 if(isCloseWin) return "Note: You didn't save the data. Determined to leave?";//ie7 ok
}

 

解決indexof兼容問題

//解决ie不兼容indexOf
  if(!Array.indexOf){
   Array.prototype.indexOf = function(obj){
    for(var i=0; i<this.length; i++){
     if(this[i]==obj){
      return i;
     }
    }
    return -1;
   } 
  }

 

匹配英文名

str = str.replace(/(^\s*)|(\s*$)/g,"");//去掉首尾空格
//字符头尾是字母,中间由空格和字母组成,中间可以有多个空格
if(/^[A-Za-z][A-Za-z\s]*[A-Za-z]$/.test(str)){
    str = str.replace(/\s+/g," ");//将中间无论多少空格替换成一个
}

 

 处理多选与单选

//js
function selectCheckBoxAll(name) { 
 var el = document.getElementsByTagName('input'); 
 var len = el.length; 
 for(var i=0; i<len; i++) { 
  if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) { 
   el[i].checked = true; 
  } 
 } 
} 
function clearCheckBoxAll(name) { 
 var el = document.getElementsByTagName('input'); 
 var len = el.length; 
 for(var i=0; i<len; i++) { 
  if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) { 
   el[i].checked = false; 
  } 
 } 
} 
//return array
function getSelectCheckBoxValue(name) { 
 var el = document.getElementsByTagName('input'); 
 var len = el.length; 
 var arySelect=[];
 for(var i=0; i<len; i++) { 
  if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) { 
   if(el[i].checked == true){
    arySelect.push(el[i].value);
   }
  } 
 }
 return arySelect; 
} 
function isSelectCheckBox(name) { 
 var el = document.getElementsByTagName('input'); 
 var len = el.length; 
 for(var i=0; i<len; i++) { 
  if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) { 
   if(el[i].checked == true) return true; 
  } 
 }
 return false; 
}   
//have selected return value,or not return false
function getSelectRadioValue(name) { 
 var el = document.getElementsByTagName('input'); 
 var len = el.length; 
 for(var i=0; i<len; i++) { 
  if((el[i].type.toLowerCase()=="radio") && (el[i].name==name)) { 
   if(el[i].checked == true) return el[i].value; 
  } 
 }
 return false;
} 
selectCheckBoxAll('cb[]');
alert(isSelectCheckBox('cb[]'));
console.log(getSelectCheckBoxValue('cb[]'));

 

<!--html-->
<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>RunJS</title>
 </head>
 <body>
  <button onclick="javascript:clearCheckBoxAll('cb[]');">clearCheckBoxAll</button>
  <button onclick="javascript:alert(getSelectRadioValue('rb'));">getSelectRadioValue</button>
  
  <input type="checkbox" name="cb[]" value="0" />0
<input type="checkbox" name="cb[]" value="1" />1
  <br/>
  <input type="radio" name="rb" value="33" />33
  
  <input type="radio" name="rb" value="44" />44
  <input type="radio" name="rb" value="55" />55
<script>
</script>
 </body>
</html>

 

 DEMO xx这里

 

批量替换超链接的#号,防止页面跳动

出现返回顶部按钮

增加到收藏夹

//基於jquery
//批量替换超链接的#号,防止页面跳动
function a_void(){
 $("a").each(function(index, element) {
        if ($(this).attr("href")=="#"){
   $(this).attr('href','javascript:void(0);');
  }
    }); 
}
//滚动到一定距离,出现返回顶部按钮,参数是按钮元素
function sroll_top(selector){
 $(window).bind("scroll",function(){
  if( $(document).scrollTop() < $(window).height() *1.5 ) {
  jQuery(selector).hide();
  }else if($(document).scrollTop() > $(window).height() *1.5){
   jQuery(selector).show();
  }
 });
}
/**增加到收藏夹,参数sURL地址,sTitle名称***/
function AddFavorite(sURL, sTitle)
{
    try
    {
        window.external.addFavorite(sURL, sTitle);
    }
    catch (e)
    {
        try
        {
            window.sidebar.addPanel(sTitle, sURL, "");
        }
        catch (e)
        {
            alert("加入收藏失败,请使用Ctrl+D进行添加");
        }
    }
}

 

 

 

 

 

 

 

转载于:https://my.oschina.net/homeemail/blog/317139

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值