global--名稱空間的使用(一些零散的js方法)

靜逸發表於2015-05-20
        var GLOBAL = {};
        GLOBAL.namespace = function (str) {
            var arr = str.split('.'), o = GLOBAL;
            for (var i = (arr[0] == 'GLOBAL') ? 1 : 0; i < arr.length; i++) {
                o[arr[i]] = o[arr[i]] || {};
                o = o[arr[i]];
            }
        }
        GLOBAL.namespace('Dom');

        GLOBAL.Dom.getNextNode = function (node) {
            node = typeof node == 'string' ? document.getElementById(node) : node;
            var nextNode = node.nextSibling;
            if (!nextNode) {
                return null;
            }
            if (!document.all) {
                while (true) {
                    if (nextNode.nodeType == 1) {
                        break;
                    } else {
                        if (nextNode.nextSibling) {
                            nextNode = nextNode.nextSibling;
                        } else {
                            break;
                        }
                    }
                }
            }
            return nextNode;
        }
        GLOBAL.Dom.setOpacity = function (node, level) {
            node = typeof node == 'string' ? document.getElementById(node) : node;
            if (document.all) {
                node.style.filter = 'alpha(opacity=' + level + ')';
            } else {
                node.style.opacity = level / 100;
            }
        }
        GLOBAL.Dom.get = function (node) {
            node = typeof node == 'string' ? document.getElementById(node) : node;
            return node;
        }
        GLOBAL.Dom.getElementsByClassName = function (str, root, tag) {
            if (root) {
                root = typeof root == 'string' ? document.getElementById(root) : root;
            } else {
                root = document.body;
            }
            var els = root.getElementsByTagName(tag), arr = [];
            for (var i = 0, n = els.length; i < n; i++) {
                for (var j = 0, k = els[i].className.split(' '), l = k.length; j < l; j++) {
                    if (k[j] == str) {
                        arr.push(els[i]);
                        break;
                    }
                }
            }
            return arr;
        }
        GLOBAL.Dom.addClass = function (node,str) {
            if (!new RegExp("(^|\\s+)" + str).test(node.className)) {
                node.className = node.className + " " + str;
            }
        }
        GLOBAL.Dom.hasClass = function (name,type) {
            var r = [];
            var re = new RegExp("(^|\\s)" + name + "(\\s|$)");
            var e = document.getElementsByTagName(type || "*");
            for (var j = 0; j < e.length; j++) {
                if (re.test(e[j])) {
                    r.push(e[j]);
                }
            }
            return r;
        }
        GLOBAL.Dom.removeClass = function (node,str) {
            node.className=node.className.replace(new RegExp("(^|\\s+)"+str),"");
        }
        GLOBAL.namespace('Event');


        GLOBAL.Event.getEventTarget = function (e) {
            e = window.event || e;
            return e.srcElement || e.target;
        }
        GLOBAL.Event.stopPropagation = function (e) {
            e = e.window || e;
            if (document.all) {
                e.cancelBubble = true;
            } else {
                e.stopPropagation();
            }
        }
        GLOBAL.Event.on = function (node, eventType, handler,scope) {
            node = typeof node == 'string' ? document.getElementById(node) : node;
            if (document.all) {
                node.attachEvent('on' + eventType, function () {
                    handler.apply(scope, arguments);
                });
            } else {
                node.addEventListener(eventType, function () {
                    handler.apply(scope, arguments);
                }, false);
            }
        }
        GLOBAL.namespace('Lang');
        GLOBAL.Lang.trim = function (ostr) {
            return ostr.replace(/^\s+|s+$/g, "");
        }
        GLOBAL.Lang.isNumber = function (s) {
            return !isNaN(s);
        }
        GLOBAL.Lang.isString = function (s) {
            return typeof s === 'string';
        }
        GLOBAL.Lang.isBoolean = function (s) {
            return typeof s === 'boolean';
        }
        GLOBAL.Lang.isFunction = function (s) {
            return typeof s === 'function';
        }
        GLOBAL.Lang.isNull = function (s) {
            return s === null;
        }
        GLOBAL.Lang.isUndefined = function (s) {
            return typeof s === 'undefined';
        }
        GLOBAL.Lang.isEmpty = function (s) {
            return /^\s$/.test(s);
        }
        GLOBAL.Lang.isArray = function (s) {
            return s instanceof Array;
        }

        GLOBAL.Lang.extend = function (subClass, superClass) {
            var F = function () { };
            F.prototype = superClass.prototype;
            subClass.prototype = new F();
            subClass.prototype.constructor = subClass;
            subClass.superClass = superClass.prototype;
            if (superClass.prototype.constructor == Object.prototype.constructor) {
                superClass.prototype.constructor = superClass;
            }
        }
        GLOBAL.namespace("Cookie");
        GLOBAL.Cookie = {
            read: function (name) {
                var cookieStr = ";" + document.cookie + ";";
                var index = cookieStr.indexOf(";" + name + "=");
                if (index!=-1) {
                    var s = cookieStr.substring(index + name.length + 3, cookieStr.length);
                    return unescape(s.substring(0, s.indexOf(';')));
                } else {
                    return null;
                }
            },
            set: function (name,value,expires) {
                var expDays = expires * 24 * 60 * 60 * 1000;
                var expDate = new Date();
                expDate.setTime(expDate.getTime() + expDays);
                var expString = expires ? ";expires" + expDate.toGMTString() : "";
                var pathString = ";path=/";
                document.cookie = name + "=" + escape(value) + expString + pathString;
            },
            del: function () {
                var exp = new Date(new Date().getTime() - 1);
                var s = this.read(name);
                if (s!=null) {
                    document.cookie = name + "=" + s + ";expires=" + exp.toGMTString() + ";path=/";
                }
            }
        };

 

相關文章