📄 ext-base.js
字号:
/*
* 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 + -