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

📄 ajs.js

📁 好东西
💻 JS
📖 第 1 页 / 共 3 页
字号:
        var i=0, attr;        var elm = document.createElement(name);        var first_attr = attrs[0];        if(AJS.isDict(attrs[i])) {            for(k in first_attr) {                attr = first_attr[k];                if(k == 'style' || k == 's')                    elm.style.cssText = attr;                else if(k == 'c' || k == 'class' || k == 'className')                    elm.className = attr;                else {                    elm.setAttribute(k, attr);                }            }            i++;        }        if(first_attr == null)            i = 1;        for(var j=i; j < attrs.length; j++) {            var attr = attrs[j];            if(attr) {                var type = typeof(attr);                if(type == 'string' || type == 'number')                    attr = AJS.TN(attr);                elm.appendChild(attr);            }        }        return elm;    },    _createDomShortcuts: function() {        var elms = [                "ul", "li", "td", "tr", "th",                "tbody", "table", "input", "span", "b",                "a", "div", "img", "button", "h1",                "h2", "h3", "h4", "h5", "h6", "br", "textarea", "form",                "p", "select", "option", "optgroup", "iframe", "script",                "center", "dl", "dt", "dd", "small",                "pre", 'i'        ];        var extends_ajs = function(elm) {            AJS[elm.toUpperCase()] = function() {                return AJS.createDOM.apply(null, [elm, arguments]);             };        }        AJS.map(elms, extends_ajs);        AJS.TN = function(text) { return document.createTextNode(text) };    },        setHTML: function(elm, html) {        elm.innerHTML = html;        return elm;    },//--- CSS related ----------------------------------------------    showElement: function(/*elms...*/) {        var args = AJS.forceArray(arguments);        AJS.map(args, function(elm) { elm.style.display = ''});    },    hideElement: function(elm) {        var args = AJS.forceArray(arguments);        AJS.map(args, function(elm) { elm.style.display = 'none'});    },    isElementHidden: function(elm) {        return ((elm.style.display == "none") || (elm.style.visibility == "hidden"));    },    getCssDim: function(dim) {        if(AJS.isString(dim))            return dim;        else            return dim + "px";    },    getCssProperty: function(elm, prop) {        elm = AJS.$(elm);        var y;        if(elm.currentStyle)            y = elm.currentStyle[prop];	else if (window.getComputedStyle)            y = document.defaultView.getComputedStyle(elm,null).getPropertyValue(prop);	return y;    },    setStyle: function(/*elm1, elm2..., property, new_value*/) {        var args = AJS.forceArray(arguments);        var new_val = args.pop();        var property = args.pop();        AJS.map(args, function(elm) {             elm.style[property] = AJS.getCssDim(new_val);        });    },    setWidth: function(/*elm1, elm2..., width*/) {        var args = AJS.forceArray(arguments);        args.splice(args.length-1, 0, 'width');        AJS.setStyle.apply(null, args);    },    setHeight: function(/*elm1, elm2..., height*/) {        var args = AJS.forceArray(arguments);        args.splice(args.length-1, 0, 'height');        AJS.setStyle.apply(null, args);    },    setLeft: function(/*elm1, elm2..., left*/) {        var args = AJS.forceArray(arguments);        args.splice(args.length-1, 0, 'left');        AJS.setStyle.apply(null, args);    },    setTop: function(/*elm1, elm2..., top*/) {        var args = AJS.forceArray(arguments);        args.splice(args.length-1, 0, 'top');        AJS.setStyle.apply(null, args);    },    setClass: function(/*elm1, elm2..., className*/) {        var args = AJS.forceArray(arguments);        var c = args.pop();        AJS.map(args, function(elm) { elm.className = c});    },    addClass: function(/*elm1, elm2..., className*/) {        var args = AJS.forceArray(arguments);        var cls = args.pop();        var add_class = function(o) {            if(!new RegExp("(^|\\s)" + cls + "(\\s|$)").test(o.className))                o.className += (o.className ? " " : "") + cls;        };        AJS.map(args, function(elm) { add_class(elm); });    },    hasClass: function(elm, cls) {        if(!elm.className)            return false;        return elm.className == cls ||                elm.className.search(new RegExp(" " + cls + "|^" + cls)) != -1    },    removeClass: function(/*elm1, elm2..., className*/) {        var args = AJS.forceArray(arguments);        var cls = args.pop();        var rm_class = function(o) {            o.className = o.className.replace(new RegExp("\\s?" + cls, 'g'), "");        };        AJS.map(args, function(elm) { rm_class(elm); });    },    setOpacity: function(elm, p) {        elm.style.opacity = p;        elm.style.filter = "alpha(opacity="+ p*100 +")";    },    resetOpacity: function(elm) {        elm.style.opacity = 1;        elm.style.filter = "";    },//--- Misc ----------------------------------------------    RND: function(tmpl, ns, scope) {        scope = scope || window;        var fn = function(w, g) {            g = g.split("|");            var cnt = ns[g[0]];            for(var i=1; i < g.length; i++)                cnt = scope[g[i]](cnt);            if(cnt == '')                return '';            if(cnt == 0 || cnt == -1)                cnt += '';            return cnt || w;        };        return tmpl.replace(/%\(([A-Za-z0-9_|.]*)\)/g, fn);    },    HTML2DOM: function(html,/*optional*/ first_child) {        var d = AJS.DIV();        d.innerHTML = html;        if(first_child)            return d.childNodes[0];        else            return d;    },    preloadImages: function(/*img_src1, ..., img_srcN*/) {        AJS.AEV(window, 'load', AJS.$p(function(args) {            AJS.map(args, function(src) {                var pic = new Image();                pic.src = src;            });        }, arguments));    },////// Ajax functions////    getXMLHttpRequest: function() {        var try_these = [            function () { return new XMLHttpRequest(); },            function () { return new ActiveXObject('Msxml2.XMLHTTP'); },            function () { return new ActiveXObject('Microsoft.XMLHTTP'); },            function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },            function () { throw "Browser does not support XMLHttpRequest"; }        ];        for (var i = 0; i < try_these.length; i++) {            var func = try_these[i];            try {                return func();            } catch (e) {            }        }    },    getRequest: function(url, data, type) {        if(!type)            type = "POST";        var req = AJS.getXMLHttpRequest();        if(url.match(/^https?:\/\//) == null) {            if(AJS.BASE_URL != '') {                if(AJS.BASE_URL.lastIndexOf('/') != AJS.BASE_URL.length-1)                    AJS.BASE_URL += '/';                url = AJS.BASE_URL + url;            }        }        req.open(type, url, true);        if(type == "POST")            req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");        return AJS._sendXMLHttpRequest(req);    },    _sendXMLHttpRequest: function(req, data) {        var d = new AJSDeferred(req);        var onreadystatechange = function () {            if (req.readyState == 4) {                var status = '';                try {                    status = req.status;                }                catch(e) {};                if(status == 200 || status == 304 || req.responseText == null) {                    d.callback();                }                else {                    if(d.errbacks.length == 0) {                        if(AJS.ajaxErrorHandler)                            AJS.ajaxErrorHandler(req.responseText, req);                    }                    else                         d.errback();                }            }        }        req.onreadystatechange = onreadystatechange;        return d;    },    _reprString: function(o) {        return ('"' + o.replace(/(["\\])/g, '\\$1') + '"'        ).replace(/[\f]/g, "\\f"        ).replace(/[\b]/g, "\\b"        ).replace(/[\n]/g, "\\n"        ).replace(/[\t]/g, "\\t"        ).replace(/[\r]/g, "\\r");    },    _reprDate: function(db) {        var year = db.getFullYear();        var dd = db.getDate();        var mm = db.getMonth()+1;        var hh = db.getHours();        var mins = db.getMinutes();        function leadingZero(nr) {            if (nr < 10) nr = "0" + nr;            return nr;        }        if(hh == 24) hh = '00';        var time = leadingZero(hh) + ':' + leadingZero(mins);        return '"' + year + '-' + mm + '-' + dd + 'T' + time + '"';    },    serializeJSON: function(o) {        var objtype = typeof(o);        if (objtype == "undefined") {            return "undefined";        } else if (objtype == "number" || objtype == "boolean") {            return o + "";        } else if (o === null) {            return "null";        }        if (objtype == "string") {            return AJS._reprString(o);        }        if(objtype == 'object' && o.getFullYear) {            return AJS._reprDate(o);        }        var me = arguments.callee;        if (objtype != "function" && typeof(o.length) == "number") {            var res = [];            for (var i = 0; i < o.length; i++) {                var val = me(o[i]);                if (typeof(val) != "string") {                    val = "undefined";                }                res.push(val);            }            return "[" + res.join(",") + "]";        }        // it's a function with no adapter, bad        if (objtype == "function")            return null;        res = [];        for (var k in o) {            var useKey;            if (typeof(k) == "number") {                useKey = '"' + k + '"';            } else if (typeof(k) == "string") {                useKey = AJS._reprString(k);            } else {                // skip non-string or number keys                continue;            }            val = me(o[k]);            if (typeof(val) != "string") {                // skip non-serializable values                continue;            }            res.push(useKey + ":" + val);        }        return "{" + res.join(",") + "}";    },    loadJSONDoc: function(url) {        var d = AJS.getRequest(url);        var eval_req = function(data, req) {            var text = req.responseText;            if(text == "Error")                d.errback(req);            else                return AJS.evalTxt(text);        };        d.addCallback(eval_req);        return d;    },    evalTxt: function(txt) {        try {            return eval('('+ txt + ')');        }        catch(e) {            return eval(txt);        }    },    evalScriptTags: function(html) {        var script_data = html.match(/<script.*?>((\n|\r|.)*?)<\/script>/g);        if(script_data != null) {            for(var i=0; i < script_data.length; i++) {                var script_only = script_data[i].replace(/<script.*?>/g, "");                script_only = script_only.replace(/<\/script>/g, "");                eval(script_only);            }        }    },    queryArguments: function(data) {        var post_data = [];        for(k in data)            post_data.push(k + "=" + AJS.urlencode(data[k]));        return post_data.join("&");    },////// Position and size////    getMousePos: function(e) {        var posx = 0;        var posy = 0;        if (!e) var e = window.event;        if (e.pageX || e.pageY) {            posx = e.pageX;            posy = e.pageY;        }        else if (e.clientX || e.clientY) {            posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;            posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;        }        return {x: posx, y: posy};    },    getScrollTop: function() {        //From: http://www.quirksmode.org/js/doctypes.html        var t;        if (document.documentElement && document.documentElement.scrollTop)                t = document.documentElement.scrollTop;        else if (document.body)                t = document.body.scrollTop;        return t;    },    //Shortcut: AJS.$AP    absolutePosition: function(elm) {        var posObj = {'x': elm.offsetLeft, 'y': elm.offsetTop};        if(elm.offsetParent) {            var next = elm.offsetParent;            while(next) {

⌨️ 快捷键说明

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