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

📄 ajs.js

📁 GreyBox_v5_53 弹出窗口框架
💻 JS
📖 第 1 页 / 共 3 页
字号:
                posObj.x += next.offsetLeft;                posObj.y += next.offsetTop;                next = next.offsetParent;            }        }        // safari bug        if (AJS.isSafari() && elm.style.position == 'absolute' ) {            posObj.x -= document.body.offsetLeft;            posObj.y -= document.body.offsetTop;        }        return posObj;    },    getWindowSize: function(doc) {        doc = doc || document;        var win_w, win_h;        if (self.innerHeight) {            win_w = self.innerWidth;            win_h = self.innerHeight;        } else if (doc.documentElement && doc.documentElement.clientHeight) {            win_w = doc.documentElement.clientWidth;            win_h = doc.documentElement.clientHeight;        } else if (doc.body) {            win_w = doc.body.clientWidth;            win_h = doc.body.clientHeight;        }        return {'w': win_w, 'h': win_h};    },    isOverlapping: function(elm1, elm2) {        var pos_elm1 = AJS.absolutePosition(elm1);        var pos_elm2 = AJS.absolutePosition(elm2);        var top1 = pos_elm1.y;        var left1 = pos_elm1.x;        var right1 = left1 + elm1.offsetWidth;        var bottom1 = top1 + elm1.offsetHeight;        var top2 = pos_elm2.y;        var left2 = pos_elm2.x;        var right2 = left2 + elm2.offsetWidth;        var bottom2 = top2 + elm2.offsetHeight;        var getSign = function(v) {            if(v > 0) return "+";            else if(v < 0) return "-";            else return 0;        }        if ((getSign(top1 - bottom2) != getSign(bottom1 - top2)) &&                (getSign(left1 - right2) != getSign(right1 - left2)))            return true;        return false;    },////// Events////    getEventElm: function(e) {        if(e && !e.type && !e.keyCode)            return e        var targ;        if (!e) var e = window.event;        if (e.target) targ = e.target;        else if (e.srcElement) targ = e.srcElement;        if (targ.nodeType == 3) // defeat Safari bug            targ = targ.parentNode;        return targ;    },    setEventKey: function(e) {        e.key = e.keyCode ? e.keyCode : e.charCode;        if(window.event) {            e.ctrl = window.event.ctrlKey;            e.shift = window.event.shiftKey;        }        else {            e.ctrl = e.ctrlKey;            e.shift = e.shiftKey;        }        switch(e.key) {            case 63232:                e.key = 38;                break;            case 63233:                e.key = 40;                break;            case 63235:                e.key = 39;                break;            case 63234:                e.key = 37;                break;        }    },    //Shortcut: AJS.AEV    addEventListener: function(elm, type, fn, /*optional*/listen_once, cancle_bubble) {        var ajs_l_key = 'ajsl_'+type+fn;        if(!cancle_bubble)            cancle_bubble = false;        AJS.listeners = AJS.$A(AJS.listeners);        //Fix keyCode        if(AJS.isIn(type, ['keypress', 'keydown', 'keyup', 'click'])) {            var old_fn_1 = fn;            fn = function(e) {                AJS.setEventKey(e);                return old_fn_1.apply(window, arguments);            }        }        //Hack since these does not work in all browsers        var is_special_type = AJS.isIn(type, ['submit', 'load', 'scroll', 'resize']);        var elms = AJS.$A(elm);        AJS.map(elms, function(elm_i) {            if(listen_once) {                var old_fn_2 = fn;                fn = function(e) {                    AJS.REV(elm_i, type, fn);                    return old_fn_2.apply(window, arguments);                }            }            if(is_special_type) {                var old_fn = elm_i['on' + type];                var wrap_fn = function() {                    if(old_fn) {                        fn(arguments);                        return old_fn(arguments);                    }                    else                        return fn(arguments);                };                elm_i[ajs_l_key] = wrap_fn;                elm_i[ajs_l_key+'old'] = old_fn;                elm['on' + type] = wrap_fn;            }            else {                elm_i[ajs_l_key] = fn;                if (elm_i.attachEvent)                    elm_i.attachEvent("on" + type, fn);                else if(elm_i.addEventListener)                    elm_i.addEventListener(type, fn, cancle_bubble);                AJS.listeners.push([elm_i, type, fn]);            }        });    },    //Shortcut: AJS.REV    removeEventListener: function(elm, type, fn, /*optional*/cancle_bubble) {        var ajs_l_key = 'ajsl_'+type+fn;        if(!cancle_bubble)            cancle_bubble = false;        fn = elm[ajs_l_key] || fn;        if(elm['on' + type] == fn) {            elm['on' + type] = elm[ajs_l_key + 'old'];        }        if(elm.removeEventListener) {            elm.removeEventListener(type, fn, cancle_bubble);            if(AJS.isOpera())                elm.removeEventListener(type, fn, !cancle_bubble);        }        else if(elm.detachEvent)            elm.detachEvent("on" + type, fn);    },    //Shortcut: AJS.$b    bind: function(fn, scope, /*optional*/ extra_args) {        fn._cscope = scope;        return AJS._getRealScope(fn, extra_args);    },    bindMethods: function(self) {        for (var k in self) {            var func = self[k];            if (typeof(func) == 'function') {                self[k] = AJS.$b(func, self);            }        }    },    callLater: function(fn, interval) {        var fn_no_send = function() {            fn();        };        window.setTimeout(fn_no_send, interval);    },    preventDefault: function(e) {        if(AJS.isIe())             window.event.returnValue = false;        else {            e.preventDefault();        }    },    _listenOnce: function(elm, type, fn) {        var r_fn = function() {            AJS.removeEventListener(elm, type, r_fn);            fn(arguments);        }        return r_fn;    },    _getRealScope: function(fn, /*optional*/ extra_args) {        extra_args = AJS.$A(extra_args);        var scope = fn._cscope || window;        return function() {            var args = AJS.$FA(arguments).concat(extra_args);            return fn.apply(scope, args);        };    },    _unloadListeners: function() {        if(AJS.listeners)            AJS.map(AJS.listeners, function(elm, type, fn) { AJS.REV(elm, type, fn) });        AJS.listeners = [];    },////// Misc.////    keys: function(obj) {        var rval = [];        for (var prop in obj) {            rval.push(prop);        }        return rval;    },    values: function(obj) {        var rval = [];        for (var prop in obj) {            rval.push(obj[prop]);        }        return rval;    },    urlencode: function(str) {        return encodeURIComponent(str.toString());    },    isDefined: function(o) {        return (o != "undefined" && o != null)    },    isArray: function(obj) {        return obj instanceof Array;    },    isString: function(obj) {        return (typeof obj == 'string');    },    isNumber: function(obj) {        return (typeof obj == 'number');    },    isObject: function(obj) {        return (typeof obj == 'object');    },    isFunction: function(obj) {        return (typeof obj == 'function');    },    isDict: function(o) {        var str_repr = String(o);        return str_repr.indexOf(" Object") != -1;    },    exportToGlobalScope: function() {        for(e in AJS)            window[e] = AJS[e];    },    log: function(o) {        if(window.console)            console.log(o);        else {            var div = AJS.$('ajs_logger');            if(!div) {                div = AJS.DIV({id: 'ajs_logger', 'style': 'color: green; position: absolute; left: 0'});                div.style.top = AJS.getScrollTop() + 'px';                AJS.ACN(AJS.getBody(), div);            }            AJS.setHTML(div, ''+o);        }    }}AJS.Class = function(members) {    var fn = function() {        if(arguments[0] != 'no_init') {            return this.init.apply(this, arguments);        }    }    fn.prototype = members;    AJS.update(fn, AJS.Class.prototype);    return fn;}AJS.Class.prototype = {    extend: function(members) {        var parent = new this('no_init');        for(k in members) {            var prev = parent[k];            var cur = members[k];            if (prev && prev != cur && typeof cur == 'function') {                cur = this._parentize(cur, prev);            }            parent[k] = cur;        }        return new AJS.Class(parent);    },    implement: function(members) {        AJS.update(this.prototype, members);    },    _parentize: function(cur, prev) {        return function(){            this.parent = prev;            return cur.apply(this, arguments);        }    }};//End class//ShortcutsAJS.$ = AJS.getElement;AJS.$$ = AJS.getElements;AJS.$f = AJS.getFormElement;AJS.$b = AJS.bind;AJS.$p = AJS.partial;AJS.$FA = AJS.forceArray;AJS.$A = AJS.createArray;AJS.DI = AJS.documentInsert;AJS.ACN = AJS.appendChildNodes;AJS.RCN = AJS.replaceChildNodes;AJS.AEV = AJS.addEventListener;AJS.REV = AJS.removeEventListener;AJS.$bytc = AJS.getElementsByTagAndClassName;AJS.$AP = AJS.absolutePosition;AJSDeferred = function(req) {    this.callbacks = [];    this.errbacks = [];    this.req = req;}AJSDeferred.prototype = {    excCallbackSeq: function(req, list) {        var data = req.responseText;        while (list.length > 0) {            var fn = list.pop();            var new_data = fn(data, req);            if(new_data)                data = new_data;        }    },    callback: function () {        this.excCallbackSeq(this.req, this.callbacks);    },    errback: function() {        if(this.errbacks.length == 0)            alert("Error encountered:\n" + this.req.responseText);        this.excCallbackSeq(this.req, this.errbacks);    },    addErrback: function(fn) {        this.errbacks.unshift(fn);    },    addCallback: function(fn) {        this.callbacks.unshift(fn);    },    abort: function() {        this.req.abort();    },    addCallbacks: function(fn1, fn2) {        this.addCallback(fn1);        this.addErrback(fn2);    },    sendReq: function(data) {        if(AJS.isObject(data)) {            this.req.send(AJS.queryArguments(data));        }        else if(AJS.isDefined(data))            this.req.send(data);        else {            this.req.send("");        }    }};//End deferred//Prevent memory-leaksAJS.addEventListener(window, 'unload', AJS._unloadListeners);AJS._createDomShortcuts()}script_loaded = true;

⌨️ 快捷键说明

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