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

📄 chameleon_js.php

📁 很棒的在线教学系统
💻 PHP
📖 第 1 页 / 共 5 页
字号:
                                setPropValue: function(prop, value, selector) {            if (!selector) var selector = CSS.Selector.get();            if (!CSS.__localCSS[selector]) {                CSS.__localCSS[selector] = {};            }                        var matches = prop.match(/^border\-([^\-]+)$/);            if (value) {                var func = CSS.__requiresFunction(prop);                if (func && value != 'none') {                    CSS.__localCSS[selector][prop] = func + '(' + value + ')';                } else if (matches) {                    CSS.__localCSS[selector]['border-left-' + matches[1]] = value;                    CSS.__localCSS[selector]['border-right-' + matches[1]] = value;                    CSS.__localCSS[selector]['border-top-' + matches[1]] = value;                    CSS.__localCSS[selector]['border-bottom-' + matches[1]] = value;                } else {                    CSS.__localCSS[selector][prop] = value;                }            } else {                if (matches) {                    CSS.unsetProp('border-left-' + matches[1], selector);                    CSS.unsetProp('border-right-' + matches[1], selector);                    CSS.unsetProp('border-top-' + matches[1], selector);                    CSS.unsetProp('border-bottom-' + matches[1], selector);                } else {                    CSS.unsetProp(prop, selector);                }            }                        CSS.__localSaveRequired = true;            CSS.__remoteSaveRequired = true;            CSS.preview(selector);        },                getPropValue: function(prop, selector) {            if (!selector) var selector = CSS.Selector.get();            if (!CSS.__localCSS[selector] || !CSS.__localCSS[selector][prop]) {                return '';            }            return CSS.__cleanFunctions(CSS.__localCSS[selector][prop]);        },        unsetProp: function(prop, selector) {            if (!selector) var selector = CSS.Selector.get();            if (!CSS.__localCSS[selector] || !CSS.__localCSS[selector][prop]) return;            CSS.__localCSS[selector][prop] = null;            delete CSS.__localCSS[selector][prop];            if (!CSS.__hasProps(selector)) {                CSS.__localCSS[selector] = null;                delete CSS.__localCSS[selector];            }        },                        __hasProps: function(selector) {            for (var prop in CSS.__localCSS[selector]) {                if (prop) {                    return true;                }            }            return false;        },                        __cleanFunctions: function(val) {            var toClean = ['url'];            for (var i = 0; i < toClean.length; ++i) {                var start = val.indexOf(toClean[i] + '(');                var end = val.indexOf(')', start);                if (start == -1 || end == -1) {                    continue;                }                val = val.slice(start + toClean[i].length + 1, end);            }            return val;        },        __requiresFunction: function(prop) {            var fnProps = {};            fnProps['background-image'] = 'url';            if (fnProps[prop]) {                return fnProps[prop];            }            return false;        },        fixPath: function(val) {            if (val == 'none') return val;                        var tmp = val.split('(');            if (tmp.length > 1) {                tmp[1] = Config.THEME_ROOT + '/' + tmp[1];                return tmp.join('(');            }            return Config.THEME_ROOT + '/' + val;        },                                preview: function(sel) {            var styleId = 'chameleon-preview-styles';            var h = document.getElementsByTagName('head')[0];            var s = document.getElementById(styleId);                        if (!s) {                var s = Util.createElement('style', styleId);                s.setAttribute('type', 'text/css');                h.appendChild(s);            }                        if (navigator.userAgent.toLowerCase().indexOf('msie') != -1  && !window.opera && document.styleSheets && document.styleSheets.length > 0) {                var lastStyle = document.styleSheets[document.styleSheets.length - 1];                                var ieCrashProtector = /[^a-z0-9 #_:\.\-\*]/i; // some characters appearing in a selector can cause addRule to crash IE in spectacular style - if the selector contains any character outside this list don't try to add to the preview                var ieWarning = false;                                if (sel) {                    var matchedSelectors = [];                    if (typeof sel == 'string') {                        sel = [sel];                    }                    var n = lastStyle.rules.length;                    while (n--) {                        var ns = sel.length;                        if (ns == 0) {                            break;                        }                        while (ns--) {                            if (sel[ns].match(ieCrashProtector)) {                                ieWarning = true;                                sel.splice(ns, 1);                                break;                            }                                                        if (lastStyle.rules[n].selectorText.toLowerCase() == sel[ns].toLowerCase()) {                                matchedSelectors.push(sel[ns]);                                sel.splice(ns, 1);                                lastStyle.removeRule(n);                                break;                            }                        }                    }                    matchedSelectors = matchedSelectors.concat(sel);                    var sl = matchedSelectors.length;                    while (sl--) {                        lastStyle.addRule(matchedSelectors[sl], CSS.__propsToString(CSS.__localCSS[matchedSelectors[sl]], true));                    }                } else {                    var n = lastStyle.rules.length;                    while (n--) {                        lastStyle.removeRule(n);                    }                                       for (var sel in CSS.__localCSS) {                        if (sel.match(ieCrashProtector)) {                            ieWarning = true;                            continue;                        }                        var dec = CSS.__propsToString(CSS.__localCSS[sel], true);                        lastStyle.addRule(sel, dec);                    }                }                                if (ieWarning) {                    UI.statusMsg('The edited CSS contains content that can not be previewed by Internet Explorer', 'chameleon-notice');                }                            } else {                Util.clearElement(s);                s.appendChild(document.createTextNode(CSS.toString(CSS.__localCSS, true))); // I think innerHTML would be faster here, but it doesn't work in KHTML browsers (Safari etc)            }        },                        __merge: function() {            var merged = {};            for (var i = 0; i < arguments.length; ++i) {                for (var sel in arguments[i]) {                    var newSelector = false;                    if (!merged[sel]) {                        merged[sel] = {};                        newSelector = true;                    }                    for (var prop in arguments[i][sel]) {                        merged[sel][prop] = arguments[i][sel][prop];                    }                    if (i > 0 && !newSelector) {                        for (var prop in merged[sel]) {                            if (!arguments[i][sel][prop]) {                                 merged[sel][prop] = null;                                 delete merged[sel][prop];                            }                        }                    }                }                if (i > 0) {                    for (var sel in merged) {                        if (!arguments[i][sel]) {                            merged[sel] = null;                            delete merged[sel];                        }                    }                }            }            return merged;        },                __clone: function(src) {            var cloned = {};            for (var sel in src) {                if (!cloned[sel]) {                    cloned[sel] = {};                }                for (var prop in src[sel]) {                    cloned[sel][prop] = src[sel][prop];                }            }            return cloned;        },                        toString: function(css, fixpath) {            if (!css) var css = CSS.__localCSS;                        var dec = '';            for (var sel in css) {                dec += sel + ' ' + CSS.__propsToString(css[sel], fixpath, sel);            }            return dec;        },                __propsToString: function(css, fixpath) {            CSS.__Shorthand.border = {};                        var hasBorder = false;            var col = false;            var importantBorders = [];            var dec = '{\n';            for (var prop in css) {                                var includeProp = true;                                if (prop.indexOf('border') != -1 && prop.indexOf('spacing') == -1 && prop.indexOf('collapse') == -1) {                    if (css[prop].indexOf('!important') == -1) {                        CSS.__Shorthand.recordBorder(prop, css[prop]);                    } else {                        importantBorders.push({prop: prop, css: css[prop]});                    }                    includeProp = false;                    hasBorder = true;                }                                if (prop == 'color') {                    col = css[prop];                }                if (includeProp) {                    if (fixpath && (CSS.__requiresFunction(prop) == 'url') && css[prop] != 'none') {                        dec += '  ' + prop + ': ' + CSS.fixPath(css[prop]) + ';\n';                    } else {                        dec += '  ' + prop + ': ' + css[prop] + ';\n';                    }                }            }                        if (hasBorder) {                dec += CSS.__Shorthand.getBorderString(col);            }            var n;            if (n = importantBorders.length) {                while (n--) {                    dec += '  ' + importantBorders[n].prop + ': ' + importantBorders[n].css + ';\n';                }            }                        dec += '}\n';            return dec;        },                                                toObject: function(css) {            var cssObj = {};            var end;            while (end = css.indexOf('}'), end != -1) {                var cssRule = css.substr(0, end);                var parts = cssRule.split('{');                var selector = parts.shift()                if (selector.indexOf(',') != -1) {                    var selectorArr = selector.split(',');                } else {                    var selectorArr = [selector];                }                                var rules = parts.pop().trim();                rules = rules.split(';');                for (var i = 0; i < rules.length; ++i) {                    if (rules[i].indexOf(':') == -1) {                        break;                    }                    var rule = rules[i].split(':');                    var prop = rule.shift().trim();                    var val = rule.pop().trim();                                        for (var j = 0; j < selectorArr.length; ++j) {                        var noFontPropReset = {};                                                selector = selectorArr[j].trim();                        if (!cssObj[selector]) {                            cssObj[selector] = {};                        }                                            if (prop != 'font' && (prop.indexOf('font') != -1 || prop == 'line-height')) {                            noFontPropReset[prop] = true;                        }                                            if (prop == 'background') {                            CSS.__Shorthand.setBackground(cssObj, selector, val);                        } else if (prop == 'font') {                                CSS.__Shorthand.setFont(cssObj, selector, val, noFontPropReset);                        } else if ((prop == 'border' || prop.match(/^border\-([^-]+)$/)) && prop.indexOf('spacing') == -1 && prop.indexOf('collapse') == -1) {                            CSS.__Shorthand.setBorder(cssObj, selector, val, prop);                        } else {                            cssObj[selector][prop] = val;

⌨️ 快捷键说明

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