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

📄 serial.js

📁 一个ajax富客户端的ajax类库
💻 JS
📖 第 1 页 / 共 2 页
字号:
};EchoSerial.addPropertyTranslator("s", EchoSerial.PropertyTranslator.String);/** * Date PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Date = {    _expr: /(\d{4})\.(\d{2}).(\d{2})/,    toProperty: function(client, propertyElement) {        var value = EchoSerial.PropertyTranslator.String.toProperty(client, propertyElement);        var result = this._expr.exec(value);        if (!result) {            return null;        }        return new Date(result[1], parseInt(result[2]) - 1, result[3]);    },        toXml: function(client, propertyElement, propertyValue) {        propertyElement.appendChild(propertyElement.ownerDocument.createTextNode(                propertyValue.getFullYear() + "." + (propertyValue.getMonth() + 1) + "." + propertyValue.getDate()));    }};EchoSerial.addPropertyTranslator("d", EchoSerial.PropertyTranslator.Date);EchoSerial.addPropertyTranslatorByType(Date, EchoSerial.PropertyTranslator.Date);/** * Map (Associative Array) PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Map = {    toProperty: function(client, propertyElement) {        var mapObject = {};        var element = propertyElement.firstChild;        while (element) {            if (element.nodeType != 1) {                continue;            }                EchoSerial.loadProperty(client, element, null, mapObject, null);            element = element.nextSibling;        }        return mapObject;    }};EchoSerial.addPropertyTranslator("m", EchoSerial.PropertyTranslator.Map);/** * Alignment PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Alignment = {    _HORIZONTAL_MAP: {        "leading": "leading",        "trailing": "trailing",        "left": "left",        "center": "center",        "right": "right"    },        _VERTICAL_MAP: {        "top": "top",        "center": "middle",        "bottom": "bottom"    },    toProperty: function(client, propertyElement) {        var element = WebCore.DOM.getChildElementByTagName(propertyElement, "a");        var h = this._HORIZONTAL_MAP[element.getAttribute("h")];        var v = this._VERTICAL_MAP[element.getAttribute("v")];                if (h) {            if (v) {                return { horizontal: h, vertical: v };            }            return h;        }        if (v) {            return v;        }        return null;    }};EchoSerial.addPropertyTranslator("Alignment", EchoSerial.PropertyTranslator.Alignment);EchoSerial.addPropertyTranslator("AL", EchoSerial.PropertyTranslator.Alignment);/** * Border PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Border = {    toProperty: function(client, propertyElement) {        var value = propertyElement.getAttribute("v");        if (value) {            return value;        } else {            var element = WebCore.DOM.getChildElementByTagName(propertyElement, "b");            var border = {};                        value = element.getAttribute("t");            if (value) {                border.top = value;                value = element.getAttribute("r");                if (value) {                    border.right = value;                    value = element.getAttribute("b");                    if (value) {                        border.bottom = value;                        value = element.getAttribute("l");                        if (value) {                            border.left = value;                        }                    }                }            } else {                throw new Error("Invalid multi-sided border: no sides set.");            }            return border;        }    }};EchoSerial.addPropertyTranslator("Border", EchoSerial.PropertyTranslator.Border);EchoSerial.addPropertyTranslator("BO", EchoSerial.PropertyTranslator.Border);//FIXME delete/** * Extent PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Extent = {    toProperty: function(client, propertyElement) {        return  propertyElement.firstChild.data;    },        toXml: function(client, propertyElement, propertyValue) {        propertyElement.appendChild(propertyElement.ownerDocument.createTextNode(propertyValue.toString()));    }};EchoSerial.addPropertyTranslator("Extent", EchoSerial.PropertyTranslator.Extent);EchoSerial.addPropertyTranslator("X", EchoSerial.PropertyTranslator.Extent);/** * FillImage PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.FillImage = {    toProperty: function(client, propertyElement) {        var element = WebCore.DOM.getChildElementByTagName(propertyElement, "fi");        return this._parseElement(client, element);    },        _parseElement: function(client, fiElement) {        var url = fiElement.getAttribute("u");        if (client.decompressUrl) {            url = client.decompressUrl(url);        }        repeat = fiElement.getAttribute("r");        var x = fiElement.getAttribute("x");        var y = fiElement.getAttribute("y");                if (repeat || x || y) {            return { url: url, repeat: repeat, x: x, y: y };        } else {            return url;        }    }};EchoSerial.addPropertyTranslator("FillImage", EchoSerial.PropertyTranslator.FillImage);EchoSerial.addPropertyTranslator("FI", EchoSerial.PropertyTranslator.FillImage);/** * FillImageBorder PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.FillImageBorder = {    _NAMES: [ "topLeft", "top", "topRight", "left", "right", "bottomLeft", "bottom", "bottomRight" ],    toProperty: function(client, propertyElement) {        var element = WebCore.DOM.getChildElementByTagName(propertyElement, "fib");        return EchoSerial.PropertyTranslator.FillImageBorder._parseElement(client, element);    },        _parseElement: function(client, fibElement) {        var fillImageBorder = {             contentInsets: fibElement.getAttribute("ci") == "" ? null : fibElement.getAttribute("ci"),            borderInsets: fibElement.getAttribute("bi") == "" ? null : fibElement.getAttribute("bi"),            color: fibElement.getAttribute("bc")        };                var element = fibElement.firstChild;        var i = 0;        while(element) {            if (element.nodeType == 1) {                if (element.nodeName == "fi") {                    fillImageBorder[this._NAMES[i]] = EchoSerial.PropertyTranslator.FillImage._parseElement(client, element);                    ++i;                } else if (element.nodeName == "null-fi") {                    ++i;                }            }            element = element.nextSibling;        }        if (!(i == 0 || i == 8)) {            throw new Error("Invalid FillImageBorder image count: " + i);        }            return fillImageBorder;    }};EchoSerial.addPropertyTranslator("FillImageBorder", EchoSerial.PropertyTranslator.FillImageBorder);EchoSerial.addPropertyTranslator("FIB", EchoSerial.PropertyTranslator.FillImageBorder);/** * Font PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Font = {    toProperty: function(client, propertyElement) {        var element = WebCore.DOM.getChildElementByTagName(propertyElement, "f");        var tfElements = WebCore.DOM.getChildElementsByTagName(element, "tf");                var font = { };                if (tfElements.length > 1) {            font.typeface = new Array(tfElements.length);            for (var i = 0; i < tfElements.length; ++i) {                font.typeface[i] = tfElements[i].getAttribute("n");            }        } else if (tfElements.length == 1) {            font.typeface = tfElements[0].getAttribute("n");        }                var size = element.getAttribute("sz");        if (size) {            font.size = size;        }                if (element.getAttribute("bo")) { font.bold        = true; }        if (element.getAttribute("it")) { font.italic      = true; }        if (element.getAttribute("un")) { font.underline   = true; }        if (element.getAttribute("ov")) { font.overline    = true; }        if (element.getAttribute("lt")) { font.lineThrough = true; }                return font;    }};EchoSerial.addPropertyTranslator("Font", EchoSerial.PropertyTranslator.Font);EchoSerial.addPropertyTranslator("F", EchoSerial.PropertyTranslator.Font);/** * ImageReference PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.ImageReference = {    toProperty: function(client, propertyElement) {        var url = propertyElement.firstChild.data;        if (client.decompressUrl) {            url = client.decompressUrl(url);        }        var width = propertyElement.getAttribute("w");        width = width ? width : null;        var height = propertyElement.getAttribute("h");        height = height ? height : null;                if (width || height) {            return { url: url, width: width, height: height };        } else {            return url;        }    }};EchoSerial.addPropertyTranslator("ImageReference", EchoSerial.PropertyTranslator.ImageReference);EchoSerial.addPropertyTranslator("I", EchoSerial.PropertyTranslator.ImageReference);/** * Insets PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Insets = {    toProperty: function(client, propertyElement) {        return propertyElement.firstChild.data;    }};EchoSerial.addPropertyTranslator("Insets", EchoSerial.PropertyTranslator.Insets);EchoSerial.addPropertyTranslator("N", EchoSerial.PropertyTranslator.Insets);/** * LayoutData PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.LayoutData = {    toProperty: function(client, propertyElement) {        var layoutData = {};        var element = propertyElement.firstChild;        while (element) {            if (element.nodeType == 1) {                switch (element.nodeName) {                case "p":                    EchoSerial.loadProperty(client, element, null, layoutData);                    break;                }            }            element = element.nextSibling;        }        return layoutData;    }};EchoSerial.addPropertyTranslator("LayoutData", EchoSerial.PropertyTranslator.LayoutData);EchoSerial.addPropertyTranslator("L", EchoSerial.PropertyTranslator.LayoutData);

⌨️ 快捷键说明

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