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

📄 ext.js

📁 Ext JS是一个创建丰富互联网应用程序的跨浏览器的JavaScrip库。它包含:高效率
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*
 * Ext JS Library 3.0 Pre-alpha
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

Ext = {version: '3.0'};// 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){    // no "this" reference for friendly out of scope calls    if (defaults) 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,        ua = navigator.userAgent.toLowerCase(),        check = function(r){            return r.test(ua);        },        isStrict = document.compatMode == "CSS1Compat",        isOpera = check(/opera/),        isChrome = check(/chrome/),        isWebKit = check(/webkit/),        isSafari = !isChrome && check(/safari/),        isSafari3 = isSafari && check(/version\/3/),        isSafari4 = isSafari && check(/version\/4/),        isIE = !isOpera && check(/msie/),        isIE7 = isIE && check(/msie 7/),        isIE8 = isIE && check(/msie 8/),        isGecko = !isWebKit && check(/gecko/),        isGecko3 = isGecko && check(/rv:1\.9/),        isBorderBox = isIE && !isStrict,        isWindows = check(/windows|win32/),        isMac = check(/macintosh|mac os x/),        isAir = check(/adobeair/),        isLinux = check(/linux/),        isSecure = /^https/i.test(window.location.protocol);    // remove css image flicker    if(isIE && !(isIE7 || isIE8)){        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 if the {@link Ext.Fx} Class is available         * @type Boolean         * @property enableFx         */        /**         * 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 {@link #enableGarbageCollector} is true.         * @type Boolean         */        enableListenerCollection : false,                /**         * Indicates whether to use native browser parsing for JSON methods.         * This option is ignored if the browser does not support native JSON methods.         * <b>Note: Native JSON methods will not work with objects that have functions.         * Also, property names must be quoted, otherwise the data will not parse.</b> (Defaults to false)         * @type Boolean         */        USE_NATIVE_JSON : false,        /**         * 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){                for(var p in c){                    if(Ext.isEmpty(o[p])){ o[p] = c[p]; }                }            }            return o;        },        /**         * 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){            return (el = Ext.getDom(el) || {}).id = el.id || (prefix || "ext-gen") + (++idSeed);        },        /**         * 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(Ext.isObject(sp)){                    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.superclass = sbp.supr = (function(){                    return spp;                });                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;                Ext.apply(p, overrides);                if(Ext.isIE && overrides.toString != origclass.toString){                    p.toString = overrides.toString;                }            }        },        /**         * Creates namespaces to be used for scoping variables and classes so that they are not global.         * Specifying the last node of a namespace implicitly creates all other nodes. Usage:         * <pre><code>Ext.namespace('Company', 'Company.data');Ext.namespace('Company.data'); // equivalent and preferable to above syntaxCompany.Widget = function() { ... }Company.data.CustomStore = function(config) { ... }</code></pre>         * @param {String} namespace1         * @param {String} namespace2         * @param {String} etc         * @method namespace         */        namespace : function(){            var o, d;            Ext.each(arguments, function(v) {                d = v.split(".");                o = window[d[0]] = window[d[0]] || {};                Ext.each(d.slice(1), function(v2){                    o = o[v2] = o[v2] || {};                });            });            return o;        },        /**         * 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, pre){            var buf = [],                key,                e = encodeURIComponent;            for(key in o) {                Ext.each(o[key] || key, function(val, i) {                    buf.push("&", e(key), "=", val != key ? e(val) : "");                });            }            if(!pre) {                buf.shift();                pre = "";            }            return pre + buf.join('');        },        /**         * Takes an encoded URL and and converts it to an object. Example: <pre><code>Ext.urlDecode("foo=1&bar=2"); // returns {foo: "1", bar: "2"}Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", false); // returns {foo: "1", bar: ["2", "3", "4"]}</code></pre>         * @param {String} string         * @param {Boolean} overwrite (optional) Items of the same name will overwrite previous values instead of creating an an array (Defaults to false).         * @return {Object} A literal with members         */        urlDecode : function(string, overwrite){            var obj = {},                pairs = string.split('&'),                d = decodeURIComponent,                name,                value;            Ext.each(pairs, function(pair) {                pair = pair.split('=');                name = d(pair[0]);                value = d(pair[1]);                obj[name] = overwrite || !obj[name] ? value :                            [].concat(obj[name]).concat(value);            });            return obj;        },        /**         * Converts any iterable (numeric indices and a length property) into a true array         * Don't use this on strings. IE doesn't support "abc"[0] which this implementation depends on.         * For strings, use this instead: "abc".match(/./g) => [a,b,c];         * @param {Iterable} the iterable object to be turned into a true Array.         * @return (Array) array         */        toArray : function(){            return isIE ?                function(a, i, j, res){                    res = [];                    Ext.each(a, function(v) {                        res.push(v);                    });                    return res.slice(i || 0, j || res.length);                } :                function(a, i, j){                    return Array.prototype.slice.call(a, i || 0, j || a.length);                }        }(),        /**         * Iterates an array calling the passed function with each item, stopping if your function returns false. If the         * passed array is not really an array, your function is called once with it.         * The supplied function is called with (Object item, Number index, Array allItems).         * @param {Array/NodeList/Mixed} array         * @param {Function} fn         * @param {Object} scope         */        each : function(array, fn, scope){            if(Ext.isEmpty(array, true)) return;            if (typeof array.length == "undefined" || typeof array == "string"){                array = [array];            }            for(var i = 0, len = array.length; i < len; i++){                if(fn.call(scope || array[i], array[i], i, array) === false){ return i; };            }        },        /**         * Return the dom node for the passed String (id), dom node, or Ext.Element.         * Here are some examples:         * <pre><code>// gets dom node based on idvar elDom = Ext.getDom('elId'); // gets dom node based on the dom nodevar elDom1 = Ext.getDom(elDom); // If we don&#39;t know if we are working with an// Ext.Element or a dom node use Ext.getDomfunction(el){    var dom = Ext.getDom(el);    // do something with the dom node}         * </code></pre>         * <b>Note</b>: the dom node to be found actually needs to exist (be rendered, etc)         * when this method is called to be successful.         * @param {Mixed} el         * @return HTMLElement         */        getDom : function(el){            if(!el || !document){                return null;            }            return el.dom ? el.dom : (typeof el == 'string' ? document.getElementById(el) : el);        },                /**         * Returns the current document body as an {@link Ext.Element}.         * @return Ext.Element The document body         */        getBody : function(){            return Ext.get(document.body || document.documentElement);        },                /**         * Removes a DOM node from the document.  The body node will be ignored if passed in.         * @param {HTMLElement} node The node to remove         */        removeNode : isIE ? function(){

⌨️ 快捷键说明

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