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

📄 ext.js

📁 ajax框架extjs是一套完整的富客户端解决方案
💻 JS
📖 第 1 页 / 共 3 页
字号:
/*
 * Ext JS Library 2.2
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

Ext = {version: '2.2'};// for old browserswindow["undefined"] = window["undefined"];/** * @class Ext * Ext core utilities and functions. * @singleton *//** * Copies all the properties of config to obj. * @param {Object} obj The receiver of the properties * @param {Object} config The source of the properties * @param {Object} defaults A different object that will also be applied for default values * @return {Object} returns obj * @member Ext apply */Ext.apply = function(o, c, defaults){    if(defaults){        // no "this" reference for friendly out of scope calls        Ext.apply(o, defaults);    }    if(o && c && typeof c == 'object'){        for(var p in c){            o[p] = c[p];        }    }    return o;};(function(){    var idSeed = 0;    var ua = navigator.userAgent.toLowerCase();    var isStrict = document.compatMode == "CSS1Compat",        isOpera = ua.indexOf("opera") > -1,        isSafari = (/webkit|khtml/).test(ua),        isSafari3 = isSafari && ua.indexOf('webkit/5') != -1,        isIE = !isOpera && ua.indexOf("msie") > -1,        isIE7 = !isOpera && ua.indexOf("msie 7") > -1,        isGecko = !isSafari && ua.indexOf("gecko") > -1,        isGecko3 = !isSafari && ua.indexOf("rv:1.9") > -1,        isBorderBox = isIE && !isStrict,        isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),        isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),        isAir = (ua.indexOf("adobeair") != -1),        isLinux = (ua.indexOf("linux") != -1),        isSecure = window.location.href.toLowerCase().indexOf("https") === 0;    // remove css image flicker	if(isIE && !isIE7){        try{            document.execCommand("BackgroundImageCache", false, true);        }catch(e){}    }    Ext.apply(Ext, {        /**         * True if the browser is in strict (standards-compliant) mode, as opposed to quirks mode         * @type Boolean         */        isStrict : isStrict,        /**         * True if the page is running over SSL         * @type Boolean         */        isSecure : isSecure,        /**         * True when the document is fully initialized and ready for action         * @type Boolean         */        isReady : false,        /**         * True to automatically uncache orphaned Ext.Elements periodically (defaults to true)         * @type Boolean         */        enableGarbageCollector : true,        /**         * True to automatically purge event listeners after uncaching an element (defaults to false).         * Note: this only happens if enableGarbageCollector is true.         * @type Boolean         */        enableListenerCollection:false,        /**         * URL to a blank file used by Ext when in secure mode for iframe src and onReady src to prevent         * the IE insecure content warning (defaults to javascript:false).         * @type String         */        SSL_SECURE_URL : "javascript:false",        /**         * URL to a 1x1 transparent gif image used by Ext to create inline icons with CSS background images. (Defaults to         * "http://extjs.com/s.gif" and you should change this to a URL on your server).         * @type String         */        BLANK_IMAGE_URL : "http:/"+"/extjs.com/s.gif",        /**        * A reusable empty function        * @property         * @type Function        */        emptyFn : function(){},        /**         * Copies all the properties of config to obj if they don't already exist.         * @param {Object} obj The receiver of the properties         * @param {Object} config The source of the properties         * @return {Object} returns obj         */        applyIf : function(o, c){            if(o && c){                for(var p in c){                    if(typeof o[p] == "undefined"){ o[p] = c[p]; }                }            }            return o;        },        /**         * Applies event listeners to elements by selectors when the document is ready.         * The event name is specified with an @ suffix.<pre><code>Ext.addBehaviors({   // add a listener for click on all anchors in element with id foo   '#foo a@click' : function(e, t){       // do something   },   // add the same listener to multiple selectors (separated by comma BEFORE the @)   '#foo a, #bar span.some-class@mouseover' : function(){       // do something   }});</code></pre>         * @param {Object} obj The list of behaviors to apply         */        addBehaviors : function(o){            if(!Ext.isReady){                Ext.onReady(function(){                    Ext.addBehaviors(o);                });                return;            }            var cache = {}; // simple cache for applying multiple behaviors to same selector does query multiple times            for(var b in o){                var parts = b.split('@');                if(parts[1]){ // for Object prototype breakers                    var s = parts[0];                    if(!cache[s]){                        cache[s] = Ext.select(s);                    }                    cache[s].on(parts[1], o[b]);                }            }            cache = null;        },        /**         * Generates unique ids. If the element already has an id, it is unchanged         * @param {Mixed} el (optional) The element to generate an id for         * @param {String} prefix (optional) Id prefix (defaults "ext-gen")         * @return {String} The generated Id.         */        id : function(el, prefix){            prefix = prefix || "ext-gen";            el = Ext.getDom(el);            var id = prefix + (++idSeed);            return el ? (el.id ? el.id : (el.id = id)) : id;        },        /**         * Extends one class with another class and optionally overrides members with the passed literal. This class         * also adds the function "override()" to the class that can be used to override         * members on an instance.         * * <p>         * This function also supports a 2-argument call in which the subclass's constructor is         * not passed as an argument. In this form, the parameters are as follows:</p><p>         * <div class="mdetail-params"><ul>         * <li><code>superclass</code>         * <div class="sub-desc">The class being extended</div></li>         * <li><code>overrides</code>         * <div class="sub-desc">A literal with members which are copied into the subclass's         * prototype, and are therefore shared among all instances of the new class.<p>         * This may contain a special member named <tt><b>constructor</b></tt>. This is used         * to define the constructor of the new class, and is returned. If this property is         * <i>not</i> specified, a constructor is generated and returned which just calls the         * superclass's constructor passing on its parameters.</p></div></li>         * </ul></div></p><p>         * For example, to create a subclass of the Ext GridPanel:         * <pre><code>    MyGridPanel = Ext.extend(Ext.grid.GridPanel, {        constructor: function(config) {            // Your preprocessing here        	MyGridPanel.superclass.constructor.apply(this, arguments);            // Your postprocessing here        },        yourMethod: function() {            // etc.        }    });</code></pre>         * </p>         * @param {Function} subclass The class inheriting the functionality         * @param {Function} superclass The class being extended         * @param {Object} overrides (optional) A literal with members which are copied into the subclass's         * prototype, and are therefore shared between all instances of the new class.         * @return {Function} The subclass constructor.         * @method extend         */        extend : function(){            // inline overrides            var io = function(o){                for(var m in o){                    this[m] = o[m];                }            };            var oc = Object.prototype.constructor;            return function(sb, sp, overrides){                if(typeof sp == 'object'){                    overrides = sp;                    sp = sb;                    sb = overrides.constructor != oc ? overrides.constructor : function(){sp.apply(this, arguments);};                }                var F = function(){}, sbp, spp = sp.prototype;                F.prototype = spp;                sbp = sb.prototype = new F();                sbp.constructor=sb;                sb.superclass=spp;                if(spp.constructor == oc){                    spp.constructor=sp;                }                sb.override = function(o){                    Ext.override(sb, o);                };                sbp.override = io;                Ext.override(sb, overrides);                sb.extend = function(o){Ext.extend(sb, o);};                return sb;            };        }(),        /**         * Adds a list of functions to the prototype of an existing class, overwriting any existing methods with the same name.         * Usage:<pre><code>Ext.override(MyClass, {    newMethod1: function(){        // etc.    },    newMethod2: function(foo){        // etc.    }}); </code></pre>         * @param {Object} origclass The class to override         * @param {Object} overrides The list of functions to add to origClass.  This should be specified as an object literal         * containing one or more methods.         * @method override         */        override : function(origclass, overrides){            if(overrides){                var p = origclass.prototype;                for(var method in overrides){                    p[method] = overrides[method];                }            }        },        /**         * Creates namespaces to be used for scoping variables and classes so that they are not global.  Usage:         * <pre><code>Ext.namespace('Company', 'Company.data');Company.Widget = function() { ... }Company.data.CustomStore = function(config) { ... }</code></pre>         * @param {String} namespace1         * @param {String} namespace2         * @param {String} etc         * @method namespace         */        namespace : function(){            var a=arguments, o=null, i, j, d, rt;            for (i=0; i<a.length; ++i) {                d=a[i].split(".");                rt = d[0];                eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');                for (j=1; j<d.length; ++j) {                    o[d[j]]=o[d[j]] || {};                    o=o[d[j]];                }            }        },        /**         * Takes an object and converts it to an encoded URL. e.g. Ext.urlEncode({foo: 1, bar: 2}); would return "foo=1&bar=2".  Optionally, property values can be arrays, instead of keys and the resulting string that's returned will contain a name/value pair for each array value.         * @param {Object} o         * @return {String}         */        urlEncode : function(o){            if(!o){                return "";            }            var buf = [];            for(var key in o){                var ov = o[key], k = encodeURIComponent(key);                var type = typeof ov;                if(type == 'undefined'){                    buf.push(k, "=&");                }else if(type != "function" && type != "object"){                    buf.push(k, "=", encodeURIComponent(ov), "&");                }else if(Ext.isArray(ov)){                    if (ov.length) {	                    for(var i = 0, len = ov.length; i < len; i++) {	                        buf.push(k, "=", encodeURIComponent(ov[i] === undefined ? '' : ov[i]), "&");	                    }	                } else {	                    buf.push(k, "=&");	                }                }            }            buf.pop();            return buf.join("");        },        /**         * Takes an encoded URL and and converts it to an object. e.g. Ext.urlDecode("foo=1&bar=2"); would return {foo: 1, bar: 2} or Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", true); would return {foo: 1, bar: [2, 3, 4]}.         * @param {String} string

⌨️ 快捷键说明

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