global--명칭공간의 사용(일부 흩어진 js 방법)

15857 단어 global
        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=/";

                }

            }

        };

좋은 웹페이지 즐겨찾기