首页 > 代码库 > javascript常用tool.js

javascript常用tool.js

//跨浏览器添加事件/*function addEvent(obj, type, fn){    if(typeof obj.addEventListener != ‘undefined‘){        obj.addEventListener(type, fn, false);    }else if(typeof obj.attachEvent != ‘undefined‘){        obj.attachEvent(‘on‘ + type, function(){            fn.call(obj,window.event);        });    }}*///浏览器监测(function(){    window.sys = {};                                     //外部访问浏览器信息对象;    var ua = navigator.userAgent.toLowerCase();            //浏览器信息字符串    var s;                                                //浏览器名称加版本    (s = ua.match(/msie ([\d.]+)/)) ? sys.ie = s[1] :    (s = ua.match(/firefox\/([\d.]+)/)) ? sys.firefox = s[1] :    (s = ua.match(/chrome\/([\d.]+)/)) ? sys.chrome = s[1] :    (s = ua.match(/opera\/.*version\/([\d.]+)/)) ? sys.opera = s[1] :    (s = ua.match(/version\/([\d.]+).*safari/)) ? sys.safari = s[1] : 0 ;    if(/webkit/.test(ua)) sys.webkit = ua.match(/webkit\/([\d.]+)/)[1];    //alert(sys.webkit);})();//dom加载function addDomLoaded(fn){    var isReady = false;    var timer = null;    function doReady(){        if(timer){            clearInterval(timer);        }        if(isReady){            return;        }        isReady = true;        fn();    }    if((sys.opera && sys.opera < 9) || (sys.firefox < 3) || (sys.webkit && sys.webkit < 525)){        timer = setInterval(function(){            if(document && document.getElementById && document.getElementsByTagName && document.body){                doReady();            }        },1);        }else if(document.addEventListener){        addEvent(document, ‘DOMContentLoaded‘, function(){            fn();            removeEvent(document, ‘DOMContentLoaded‘, arguments.callee);        });    }else if(sys.ie && sys.ie < 9){        var timer = null;        timer = setInterval(function(){            try{                document.documentElement.doScroll(‘left‘);                doReady();            }catch(e){};        },1);    }}function addEvent(obj, type, fn){    if(typeof obj.addEventListener != ‘undefined‘){        obj.addEventListener(type, fn, false);    }else{        if(!obj.events)obj.events = {};        if(!obj.events[type]){            obj.events[type]=[];            if(obj[‘on‘ + type]) obj.events[type][0] = fn;        }else{            if(addEvent.equal(obj.events[type], fn)) return false;        }        obj.events[type][addEvent.ID++] = fn;        obj[‘on‘ + type] = addEvent.exec;        }}addEvent.ID = 1;addEvent.exec = function (event) {    var e = event || addEvent.fixEvent(window.event);    var es = this.events[e.type];    for(var i in es){        es[i].call(this, e);    };}addEvent.equal = function(es, fn){    for(var i in es){        if(es[i] == fn)return true    }    return false;    }addEvent.fixEvent = function(event){    event.preventDefault = addEvent.fixEvent.preventDefault;    event.stopPropagation = addEvent.fixEvent.stopPropagation;    event.target = event.srcElement;    return event;}addEvent.fixEvent.preventDefault = function(){    this.returnValue = http://www.mamicode.com/false;}addEvent.fixEvent.stopPropagation = function(){    this.cancelBubble = true;}//跨浏览器删除事件/*function removeEvent(obj, type, fn){    if(typeof obj.removeEventListener != ‘undefined‘){        obj.removeEventListener(type, fn, false);    }else if(typeof obj.detachEvent != ‘undefined‘){        obj.detachEvent(‘on‘+type, fn);    }}*/function removeEvent(obj, type, fn){    if(typeof obj.removeEventListener != ‘undefined‘){        obj.removeEventListener(type, fn, false);    }else{        if(obj.events){            for(var i in obj.events[type]){                if(obj.events[type][i] == fn){                    delete obj.events[type][i];                }            }        }    }}//跨浏览器获取视口大小function getInner(){    if(typeof window.innerWidth != ‘undefined‘){        return {            width:window.innerWidth,            height:window.innerHeight        }    }else{        return {            width:document.documentElement.clientWidth,            height:document.documentElement.clientHeight        }    }}function getScroll(){    return {        top:document.documentElement.scrollTop || document.body.scrollTop,        left:document.documentElement.scrollLeft || document.body.scrollLeft    }}//获取STYLEfunction getStyle(element, attr){    var value;    if(typeof window.getComputedStyle != ‘undefined‘){        value = window.getComputedStyle(element,null)[attr];    }else if(typeof element.currentStyle != ‘undefined‘){        value = element.currentStyle[attr];    }    return value;}//判断class是否存在function hasClass(element, className){    return element.className.match(new RegExp(‘(\\s|^)‘+className+‘(\\s|$)‘))}//添加LINK规则function insertRule(sheet, selectorText,cssText, postion){    if(typeof sheet.insertRule != ‘undefined‘){        sheet.insertRule(selectorText + ‘{‘ + cssText + ‘}‘, 0);    }else if(typeof sheet.addRule != ‘undefined‘){        sheet.addRule(selectorText,cssText, postion);    }}function deleteRule(sheet, index){    if(typeof sheet.deleteRule != ‘undefined‘){        sheet.deleteRule(index);    }else if(typeof sheet.removeRule !=‘undefined‘){        sheet.removeRule(index);    }}function getInnerText(element){    return (typeof element.textContent == ‘string‘) ? element.textContent : element.innerText;}function setInnerText(element, text){    if(typeof element.textContent == ‘string‘){        element.textContent = text;    }else{        element.innerText = text;    }}function offsetTop(element){    var top = element.offsetTop;    var parent = element.offsetParent;    while(parent != null){        top += parent.offsetTop;        parent = parent.offsetParent;    }    return top;}//删除左右空格function trim(str){    return str.replace(/(^\s*)|(\s*$)/g, ‘‘);}function inArray(array, value){    for(var i in array){        if(array[i] === value){            return true;        }    }    return false;}function predef(e){    e.preventDefault();}function prevIndex(current, parent){    var length = parent.children.length;    if(current == 0) return length-1;    return parseInt(current) - 1;}function nextIndex(current, parent){    var length = parent.children.length;    if(current == length - 1) return 0;    return parseInt(current) + 1;}function fixedScroll(){//setTimeout(function(){    window.scrollTo(fixedScroll.left, fixedScroll.top);//},100);}/*function scrollTop(){    document.documentElement.scrollTop = 0;    document.body.scrollTop = 0;}*///阻止默认行为function predef(e) {    e.preventDefault();}//创建cookiefunction setCookie(name, value, expires, path, domain, secure) {    var cookieText = encodeURIComponent(name) + ‘=‘ + encodeURIComponent(value);    if (expires instanceof Date) {        cookieText += ‘; expires=‘ + expires;    }    if (path) {        cookieText += ‘; expires=‘ + expires;    }    if (domain) {        cookieText += ‘; domain=‘ + domain;    }    if (secure) {        cookieText += ‘; secure‘;    }    document.cookie = cookieText;}//获取cookiefunction getCookie(name) {    var cookieName = encodeURIComponent(name) + ‘=‘;    var cookieStart = document.cookie.indexOf(cookieName);    var cookieValue = http://www.mamicode.com/null;    if (cookieStart > -1) {        var cookieEnd = document.cookie.indexOf(‘;‘, cookieStart);        if (cookieEnd == -1) {            cookieEnd = document.cookie.length;        }        cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));    }    return cookieValue;}//删除cookiefunction unsetCookie(name) {    document.cookie = name + "= ; expires=" + new Date(0);}

 

javascript常用tool.js