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

📄 ext-base.js

📁 ext-2.3.0
💻 JS
📖 第 1 页 / 共 5 页
字号:
            _getCacheIndex: function(el, eventName, fn) {                for (var i = 0,len = listeners.length; i < len; ++i) {                    var li = listeners[i];                    if (li &&                        li[this.FN] == fn &&                        li[this.EL] == el &&                        li[this.TYPE] == eventName) {                        return i;                    }                }                return -1;            },            elCache: {},            getEl: function(id) {                return document.getElementById(id);            },            clearCache: function() {            },            _load: function(e) {                loadComplete = true;                var EU = Ext.lib.Event;                if (Ext.isIE) {                    EU.doRemove(window, "load", EU._load);                }            },            _tryPreloadAttach: function() {                if (this.locked) {                    return false;                }                this.locked = true;                var tryAgain = !loadComplete;                if (!tryAgain) {                    tryAgain = (retryCount > 0);                }                var notAvail = [];                for (var i = 0,len = onAvailStack.length; i < len; ++i) {                    var item = onAvailStack[i];                    if (item) {                        var el = this.getEl(item.id);                        if (el) {                            if (!item.checkReady ||                                loadComplete ||                                el.nextSibling ||                                (document && document.body)) {                                var scope = el;                                if (item.override) {                                    if (item.override === true) {                                        scope = item.obj;                                    } else {                                        scope = item.override;                                    }                                }                                item.fn.call(scope, item.obj);                                onAvailStack[i] = null;                            }                        } else {                            notAvail.push(item);                        }                    }                }                retryCount = (notAvail.length === 0) ? 0 : retryCount - 1;                if (tryAgain) {                    this.startInterval();                } else {                    clearInterval(this._interval);                    this._interval = null;                }                this.locked = false;                return true;            },            purgeElement: function(el, recurse, eventName) {                var elListeners = this.getListeners(el, eventName);                if (elListeners) {                    for (var i = 0,len = elListeners.length; i < len; ++i) {                        var l = elListeners[i];                        this.removeListener(el, l.type, l.fn);                    }                }                if (recurse && el && el.childNodes) {                    for (i = 0,len = el.childNodes.length; i < len; ++i) {                        this.purgeElement(el.childNodes[i], recurse, eventName);                    }                }            },            getListeners: function(el, eventName) {                var results = [], searchLists;                if (!eventName) {                    searchLists = [listeners, unloadListeners];                } else if (eventName == "unload") {                    searchLists = [unloadListeners];                } else {                    searchLists = [listeners];                }                for (var j = 0; j < searchLists.length; ++j) {                    var searchList = searchLists[j];                    if (searchList && searchList.length > 0) {                        for (var i = 0,len = searchList.length; i < len; ++i) {                            var l = searchList[i];                            if (l && l[this.EL] === el &&                                (!eventName || eventName === l[this.TYPE])) {                                results.push({                                    type:   l[this.TYPE],                                    fn:     l[this.FN],                                    obj:    l[this.OBJ],                                    adjust: l[this.ADJ_SCOPE],                                    index:  i                                });                            }                        }                    }                }                return (results.length) ? results : null;            },            _unload: function(e) {                var EU = Ext.lib.Event, i, j, l, len, index;                for (i = 0,len = unloadListeners.length; i < len; ++i) {                    l = unloadListeners[i];                    if (l) {                        var scope = window;                        if (l[EU.ADJ_SCOPE]) {                            if (l[EU.ADJ_SCOPE] === true) {                                scope = l[EU.OBJ];                            } else {                                scope = l[EU.ADJ_SCOPE];                            }                        }                        l[EU.FN].call(scope, EU.getEvent(e), l[EU.OBJ]);                        unloadListeners[i] = null;                        l = null;                        scope = null;                    }                }                unloadListeners = null;                if (listeners && listeners.length > 0) {                    j = listeners.length;                    while (j) {                        index = j - 1;                        l = listeners[index];                        if (l) {                            EU.removeListener(l[EU.EL], l[EU.TYPE],                                    l[EU.FN], index);                        }                        j = j - 1;                    }                    l = null;                    EU.clearCache();                }                EU.doRemove(window, "unload", EU._unload);            },            getScroll: function() {                var dd = document.documentElement, db = document.body;                if (dd && (dd.scrollTop || dd.scrollLeft)) {                    return [dd.scrollTop, dd.scrollLeft];                } else if (db) {                    return [db.scrollTop, db.scrollLeft];                } else {                    return [0, 0];                }            },            doAdd: function () {                if (window.addEventListener) {                    return function(el, eventName, fn, capture) {                        el.addEventListener(eventName, fn, (capture));                    };                } else if (window.attachEvent) {                    return function(el, eventName, fn, capture) {                        el.attachEvent("on" + eventName, fn);                    };                } else {                    return function() {                    };                }            }(),            doRemove: function() {                if (window.removeEventListener) {                    return function (el, eventName, fn, capture) {                        el.removeEventListener(eventName, fn, (capture));                    };                } else if (window.detachEvent) {                    return function (el, eventName, fn) {                        el.detachEvent("on" + eventName, fn);                    };                } else {                    return function() {                    };                }            }()        };    }();    var E = Ext.lib.Event;    E.on = E.addListener;    E.un = E.removeListener;    if(document && document.body) {        E._load();    } else {        E.doAdd(window, "load", E._load);    }    E.doAdd(window, "unload", E._unload);    E._tryPreloadAttach();    Ext.lib.Ajax = {        request : function(method, uri, cb, data, options) {            if(options){                var hs = options.headers;                if(hs){                    for(var h in hs){                        if(hs.hasOwnProperty(h)){                            this.initHeader(h, hs[h], false);                        }                    }                }                if(options.xmlData){                    if (!hs || !hs['Content-Type']){                        this.initHeader('Content-Type', 'text/xml', false);                    }                    method = (method ? method : (options.method ? options.method : 'POST'));                    data = options.xmlData;                }else if(options.jsonData){                    if (!hs || !hs['Content-Type']){                        this.initHeader('Content-Type', 'application/json', false);                    }                    method = (method ? method : (options.method ? options.method : 'POST'));                    data = typeof options.jsonData == 'object' ? Ext.encode(options.jsonData) : options.jsonData;                }            }            return this.asyncRequest(method, uri, cb, data);        },        serializeForm : function(form) {            if(typeof form == 'string') {                form = (document.getElementById(form) || document.forms[form]);            }            var el, name, val, disabled, data = '', hasSubmit = false;            for (var i = 0; i < form.elements.length; i++) {                el = form.elements[i];                disabled = form.elements[i].disabled;                name = form.elements[i].name;                val = form.elements[i].value;                if (!disabled && name){                    switch (el.type)                            {                        case 'select-one':                        case 'select-multiple':                            for (var j = 0; j < el.options.length; j++) {                                if (el.options[j].selected) {                                    var opt = el.options[j],                                        sel = (opt.hasAttribute ? opt.hasAttribute('value') : opt.getAttributeNode('value').specified) ? opt.value : opt.text;                                    data += encodeURIComponent(name) + '=' + encodeURIComponent(sel) + '&';                                }                            }                            break;                        case 'radio':                        case 'checkbox':                            if (el.checked) {                                data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';                            }                            break;                        case 'file':                        case undefined:                        case 'reset':                        case 'button':                            break;                        case 'submit':                            if(hasSubmit == false) {                                data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';                                hasSubmit = true;                            }                            break;                        default:                            data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';                            break;                    }                }            }            data = data.substr(0, data.length - 1);            return data;        },        headers:{},        hasHeaders:false,        useDefaultHeader:true,        defaultPostHeader:'application/x-www-form-urlencoded; charset=UTF-8',        useDefaultXhrHeader:true,        defaultXhrHeader:'XMLHttpRequest',        hasDefaultHeaders:true,        defaultHeaders:{},        poll:{},        timeout:{},        pollInterval:50,        transactionId:0,        setProgId:function(id)        {            this.activeX.unshift(id);        },        setDefaultPostHeader:function(b)        {            this.useDefaultHeader = b;        },        setDefaultXhrHeader:function(b)        {            this.useDefaultXhrHeader = b;        },        setPollingInterval:function(i)        {            if (typeof i == 'number' && isFinite(i)) {                this.pollInterval = i;            }        },        createXhrObject:function(transactionId)        {            var obj,http;            try            {                http = new XMLHttpRequest();                obj = { conn:http, tId:transactionId };            }            catch(e)            {                for (var i = 0; i < this.activeX.length; ++i) {                    try                    {                        http = new ActiveXObject(this.activeX[i]);                        obj = { conn:http, tId:transactionId };                        break;                    }                    catch(e) {                    }                }            }            finally            {                return obj;            }        },        getConnectionObject:function()        {            var o;            var tId = this.transactionId;            try            {                o = this.createXhrObject(tId);                if (o) {                    this.transactionId++;                }            }            catch(e) {            }            finally            {                return o;            }        },        asyncRequest:function(method, uri, callback, postData)        {            var o = this.getConnectionObject();

⌨️ 快捷键说明

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