⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ext-base.js

📁 ext-2.3.0
💻 JS
📖 第 1 页 / 共 5 页
字号:
/*
 * Ext JS Library 2.3.0
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

(function() {    var libFlyweight;    Ext.lib.Dom = {        getViewWidth : function(full) {            return full ? this.getDocumentWidth() : this.getViewportWidth();        },        getViewHeight : function(full) {            return full ? this.getDocumentHeight() : this.getViewportHeight();        },        getDocumentHeight: function() {            var scrollHeight = (document.compatMode != "CSS1Compat") ? document.body.scrollHeight : document.documentElement.scrollHeight;            return Math.max(scrollHeight, this.getViewportHeight());        },        getDocumentWidth: function() {            var scrollWidth = (document.compatMode != "CSS1Compat") ? document.body.scrollWidth : document.documentElement.scrollWidth;            return Math.max(scrollWidth, this.getViewportWidth());        },        getViewportHeight: function(){            if(Ext.isIE){                return Ext.isStrict ? document.documentElement.clientHeight :                         document.body.clientHeight;            }else{                return self.innerHeight;            }        },        getViewportWidth: function() {            if(Ext.isIE){                return Ext.isStrict ? document.documentElement.clientWidth :                         document.body.clientWidth;            }else{                return self.innerWidth;            }        },        isAncestor : function(p, c) {            p = Ext.getDom(p);            c = Ext.getDom(c);            if (!p || !c) {                return false;            }            if (p.contains && !Ext.isWebKit) {                return p.contains(c);            } else if (p.compareDocumentPosition) {                return !!(p.compareDocumentPosition(c) & 16);            } else {                var parent = c.parentNode;                while (parent) {                    if (parent == p) {                        return true;                    }                    else if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") {                        return false;                    }                    parent = parent.parentNode;                }                return false;            }        },        getRegion : function(el) {            return Ext.lib.Region.getRegion(el);        },        getY : function(el) {            return this.getXY(el)[1];        },        getX : function(el) {            return this.getXY(el)[0];        },        getXY : function(el) {            var p, pe, b, scroll, bd = (document.body || document.documentElement);            el = Ext.getDom(el);            if(el == bd){                return [0, 0];            }            if (el.getBoundingClientRect) {                b = el.getBoundingClientRect();                scroll = fly(document).getScroll();                return [b.left + scroll.left, b.top + scroll.top];            }            var x = 0, y = 0;            p = el;            var hasAbsolute = fly(el).getStyle("position") == "absolute";            while (p) {                x += p.offsetLeft;                y += p.offsetTop;                if (!hasAbsolute && fly(p).getStyle("position") == "absolute") {                    hasAbsolute = true;                }                if (Ext.isGecko) {                    pe = fly(p);                    var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0;                    var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0;                    x += bl;                    y += bt;                    if (p != el && pe.getStyle('overflow') != 'visible') {                        x += bl;                        y += bt;                    }                }                p = p.offsetParent;            }            if (Ext.isWebKit && hasAbsolute) {                x -= bd.offsetLeft;                y -= bd.offsetTop;            }            if (Ext.isGecko && !hasAbsolute) {                var dbd = fly(bd);                x += parseInt(dbd.getStyle("borderLeftWidth"), 10) || 0;                y += parseInt(dbd.getStyle("borderTopWidth"), 10) || 0;            }            p = el.parentNode;            while (p && p != bd) {                if (!Ext.isOpera || (p.tagName != 'TR' && fly(p).getStyle("display") != "inline")) {                    x -= p.scrollLeft;                    y -= p.scrollTop;                }                p = p.parentNode;            }            return [x, y];        },        setXY : function(el, xy) {            el = Ext.fly(el, '_setXY');            el.position();            var pts = el.translatePoints(xy);            if (xy[0] !== false) {                el.dom.style.left = pts.left + "px";            }            if (xy[1] !== false) {                el.dom.style.top = pts.top + "px";            }        },        setX : function(el, x) {            this.setXY(el, [x, false]);        },        setY : function(el, y) {            this.setXY(el, [false, y]);        }    };/* * Portions of this file are based on pieces of Yahoo User Interface Library * Copyright (c) 2007, Yahoo! Inc. All rights reserved. * YUI licensed under the BSD License: * http://developer.yahoo.net/yui/license.txt */    Ext.lib.Event = function() {        var loadComplete = false;        var listeners = [];        var unloadListeners = [];        var retryCount = 0;        var onAvailStack = [];        var counter = 0;        var lastError = null;        return {            POLL_RETRYS: 200,            POLL_INTERVAL: 20,            EL: 0,            TYPE: 1,            FN: 2,            WFN: 3,            OBJ: 3,            ADJ_SCOPE: 4,            _interval: null,            startInterval: function() {                if (!this._interval) {                    var self = this;                    var callback = function() {                        self._tryPreloadAttach();                    };                    this._interval = setInterval(callback, this.POLL_INTERVAL);                }            },            onAvailable: function(p_id, p_fn, p_obj, p_override) {                onAvailStack.push({ id:         p_id,                    fn:         p_fn,                    obj:        p_obj,                    override:   p_override,                    checkReady: false    });                retryCount = this.POLL_RETRYS;                this.startInterval();            },            addListener: function(el, eventName, fn) {                el = Ext.getDom(el);                if (!el || !fn) {                    return false;                }                if ("unload" == eventName) {                    unloadListeners[unloadListeners.length] =                    [el, eventName, fn];                    return true;                }                // prevent unload errors with simple check                var wrappedFn = function(e) {                    return typeof Ext != 'undefined' ? fn(Ext.lib.Event.getEvent(e)) : false;                };                var li = [el, eventName, fn, wrappedFn];                var index = listeners.length;                listeners[index] = li;                this.doAdd(el, eventName, wrappedFn, false);                return true;            },            removeListener: function(el, eventName, fn) {                var i, len;                el = Ext.getDom(el);                if(!fn) {                    return this.purgeElement(el, false, eventName);                }                if ("unload" == eventName) {                    for (i = 0,len = unloadListeners.length; i < len; i++) {                        var li = unloadListeners[i];                        if (li &&                            li[0] == el &&                            li[1] == eventName &&                            li[2] == fn) {                            unloadListeners.splice(i, 1);                            return true;                        }                    }                    return false;                }                var cacheItem = null;                var index = arguments[3];                if ("undefined" == typeof index) {                    index = this._getCacheIndex(el, eventName, fn);                }                if (index >= 0) {                    cacheItem = listeners[index];                }                if (!el || !cacheItem) {                    return false;                }                this.doRemove(el, eventName, cacheItem[this.WFN], false);                delete listeners[index][this.WFN];                delete listeners[index][this.FN];                listeners.splice(index, 1);                return true;            },            getTarget: function(ev, resolveTextNode) {                ev = ev.browserEvent || ev;                var t = ev.target || ev.srcElement;                return this.resolveTextNode(t);            },            resolveTextNode: function(node) {                if (Ext.isWebKit && node && 3 == node.nodeType) {                    return node.parentNode;                } else {                    return node;                }            },            getPageX: function(ev) {                ev = ev.browserEvent || ev;                var x = ev.pageX;                if (!x && 0 !== x) {                    x = ev.clientX || 0;                    if (Ext.isIE) {                        x += this.getScroll()[1];                    }                }                return x;            },            getPageY: function(ev) {                ev = ev.browserEvent || ev;                var y = ev.pageY;                if (!y && 0 !== y) {                    y = ev.clientY || 0;                    if (Ext.isIE) {                        y += this.getScroll()[0];                    }                }                return y;            },            getXY: function(ev) {                ev = ev.browserEvent || ev;                return [this.getPageX(ev), this.getPageY(ev)];            },            getRelatedTarget: function(ev) {                ev = ev.browserEvent || ev;                var t = ev.relatedTarget;                if (!t) {                    if (ev.type == "mouseout") {                        t = ev.toElement;                    } else if (ev.type == "mouseover") {                        t = ev.fromElement;                    }                }                return this.resolveTextNode(t);            },            getTime: function(ev) {                ev = ev.browserEvent || ev;                if (!ev.time) {                    var t = new Date().getTime();                    try {                        ev.time = t;                    } catch(ex) {                        this.lastError = ex;                        return t;                    }                }                return ev.time;            },            stopEvent: function(ev) {                this.stopPropagation(ev);                this.preventDefault(ev);            },            stopPropagation: function(ev) {                ev = ev.browserEvent || ev;                if (ev.stopPropagation) {                    ev.stopPropagation();                } else {                    ev.cancelBubble = true;                }            },            preventDefault: function(ev) {                ev = ev.browserEvent || ev;                if(ev.preventDefault) {                    ev.preventDefault();                } else {                    ev.returnValue = false;                }            },            getEvent: function(e) {                var ev = e || window.event;                if (!ev) {                    var c = this.getEvent.caller;                    while (c) {                        ev = c.arguments[0];                        if (ev && Event == ev.constructor) {                            break;                        }                        c = c.caller;                    }                }                return ev;            },            getCharCode: function(ev) {                ev = ev.browserEvent || ev;                return ev.charCode || ev.keyCode || 0;            },

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -