• 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 = 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 {
                window.innerWidth,
                height:window.innerHeight
            }
        }else{
            return {
                document.documentElement.clientWidth,
                height:document.documentElement.clientHeight
            }
        }
    }
    
    function getScroll(){
        return {
            top:document.documentElement.scrollTop || document.body.scrollTop,
            left:document.documentElement.scrollLeft || document.body.scrollLeft
        }
    }
    
    
    //获取STYLE
    function 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();
    }
    
    //创建cookie
    function 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;
    }
    
    //获取cookie
    function getCookie(name) {
        var cookieName = encodeURIComponent(name) + '=';
        var cookieStart = document.cookie.indexOf(cookieName);
        var cookieValue = 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;
    }
    
    //删除cookie
    function unsetCookie(name) {
        document.cookie = name + "= ; expires=" + new Date(0);
    }
  • 相关阅读:
    MongoDB
    Django配置实现数据库读写分离
    基于scrapy-redis的分布式爬虫
    增量式爬虫
    Pyhton网络爬虫之CrawlSpider
    Scrapy 之如何发送post请求
    Scrapy 之settings配置
    Scrapy 实现爬取多页数据 + 多层url数据爬取
    Scrapy 框架入门简介
    redis操作总结
  • 原文地址:https://www.cnblogs.com/oceanden/p/4188651.html
Copyright © 2020-2023  润新知