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

📄 chameleon_js.php

📁 很棒的在线教学系统
💻 PHP
📖 第 1 页 / 共 5 页
字号:
<?phpheader("Content-type: text/plain; charset=utf-8");$chameleon_theme_root = explode('/', $_SERVER['PHP_SELF']);array_pop($chameleon_theme_root);array_pop($chameleon_theme_root);$chameleon_theme_root = implode('/', $chameleon_theme_root);?>if (!window.Node) {     var Node = {         ELEMENT_NODE: 1,         ATTRIBUTE_NODE: 2,         TEXT_NODE: 3,         CDATA_SECTION_NODE: 4,         ENTITY_REFERENCE_NODE: 5,         ENTITY_NODE: 6,         PROCESSING_INSTRUCTIONS_NODE: 7,         COMMENT_NODE: 8,         DOCUMENT_NODE: 9,         DOCUMENT_TYPE_NODE: 10,         DOCUMENT_FRAGMENT_NODE: 11,         NOTATION_NODE: 12    };}String.prototype.trim = function() {    return this.replace(/^\s+|\s+$/g, '');};(function() {    var struct = [];    var hotspotMode = null;            var Config = {        THEME_ROOT: '<?php echo $chameleon_theme_root; ?>',        REMOTE_URI: '<?php echo substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')); ?>/css.php<?php echo (isset($_GET['id'])) ? '?id='.(int) $_GET['id'] : '?dummy=1'; ?>',        FONTS_LIST: ['verdana, arial, helvetica, sans-serif', '"trebuchet ms", verdana, sans-serif', 'georgia, "trebuchet ms", times, serif', 'Other'],        FONT_WEIGHTS: ['normal', 'bold'],        FONT_STYLES: ['normal', 'italic'],        TEXT_DECORATION: ['none', 'underline', 'overline', 'line-through'],        TEXT_ALIGN: ['left', 'right', 'center', 'justify'],        REPEAT_LIST: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'],        POSITION_LIST: ['left top', 'left center', 'left bottom', 'center top', 'center center', 'center bottom', 'right top', 'right center', 'right bottom'],        BORDER_LIST: ['solid', 'dotted', 'dashed', 'none'],        UNITS: ['px', 'pt', 'em', '%'],        PROPS_LIST: ['color', 'background-color', 'background-image', 'background-attachment', 'background-position', 'font-family', 'font-size', 'font-weight', 'font-style', 'line-height', 'margin', 'padding', 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width', 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style', 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color']    };          var Util = {        __registry: {},        __uniqueId: 0,        createElement: function(tag, id) {            if (!id) var id = 'chameleon-element-' + ++Util.__uniqueId;            var obj = document.createElement(tag);            obj.setAttribute('id', id);            return obj;        },            removeElement: function(obj) {            if (!obj || !obj.parentNode) return false;            var kids = obj.getElementsByTagName('*');            if (!kids.length && typeof obj.all != 'undefined') {                kids = obj.all;            }                        var n = kids.length;            while (n--) {                if (kids[n].id && Util.__registry[kids[n].id]) {                    Util.__removeAllEvents(kids[n]);                }            }            if (Util.__registry[obj.id]) {                Util.__removeAllEvents(obj);            }            obj.parentNode.removeChild(obj);         },                clearElement: function(obj) {            while (obj.hasChildNodes()) {                obj.removeChild(obj.firstChild);            }        },         addEvent: function(obj, ev, fn) {            if (!Util.__addToRegistry(obj, ev, fn)) return;              if (obj.addEventListener) {                obj.addEventListener(ev, fn, false);            } else if (obj.attachEvent) {                obj['e' + ev + fn] = fn;                obj[ev + fn] = function() {                     obj['e' + ev + fn](window.event);                };                obj.attachEvent('on' + ev, obj[ev + fn]);            }        },        removeEvent: function(obj, ev, fn) {            if (!Util.__removeFromRegistry(obj, ev, fn)) return;            if (obj.removeEventListener) {                obj.removeEventListener(ev, fn, false);            } else if (obj.detachEvent) {                obj.detachEvent('on' + ev, obj[ev + fn]);                obj[ev + fn] = null;                 }        },        __getEventId: function(obj) {            if (obj == document)  return 'chameleon-doc';            if (obj == window) return 'chameleon-win';            if (obj.id) return obj.id;            return false;        },        __findEvent: function(id, ev, fn) {            var i = Util.__registry[id][ev].length;            while (i--) {                if (Util.__registry[id][ev][i] == fn) {                    return i;                }            }            return -1;        },        __addToRegistry: function(obj, ev, fn) {            var id = Util.__getEventId(obj);            if (!id) return false;            if (!Util.__registry[id]) {                Util.__registry[id] = {};            }            if (!Util.__registry[id][ev]) {                Util.__registry[id][ev] = [];            }            if (Util.__findEvent(id, ev, fn) == -1) {                Util.__registry[id][ev].push(fn);                return true;            }            return false;        },        __removeFromRegistry: function(obj, ev, fn) {            var id = Util.__getEventId(obj);                 if (!id) return false;             var pos = Util.__findEvent(id, ev, fn);            if (pos != -1) {                Util.__registry[id][ev].splice(pos, 1);                return true;            }            return false;        },        __removeAllEvents: function(obj) {            for (var event in Util.__registry[obj.id]) {                var n = Util.__registry[obj.id][event].length;                while (n--) {                    Util.removeEvent(obj, event, Util.__registry[obj.id][event][n]);                }            }        },        cleanUp: function() {            struct = null;            UI.closeAllBoxes();        }    };    var Pos = {        getElement: function(obj) {            var x = 0; var y = 0;            if (obj.offsetParent) {                while (obj.offsetParent) {                    x += obj.offsetLeft;                    y += obj.offsetTop;                    obj = obj.offsetParent;                }            }            return {x: x, y: y};        },        getMouse: function(e) {            var x = 0; var y = 0;            if (e.pageX || e.pageY) {                x = e.pageX;                y = e.pageY;            } else if (e.clientX || e.clientY) {                x = e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);                y = e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);            }            return {x: x, y: y};        }    };                var CSS = {                __localCSS: {},        __remoteCSS: {},                __localSaveRequired: false,        __remoteSaveRequired: false,                        requireRemoteSave: function() {            CSS.__remoteSaveRequired = true;                    },                clearTheme: function() {            /*var links = document.getElementsByTagName('link');            var n = links.length;            while (n--) {                if (links[n].href && links[n].href.indexOf('<?php echo $chameleon_theme_root . "/styles.php"; ?>') != -1) {                    links[n].parentNode.removeChild(links[n]);                    break;                }            }*/        },                loadRemote: function(doSetup) {            if (!Sarissa.IS_ENABLED_XMLHTTP) {                return false;            }            var xmlhttp = new XMLHttpRequest();            xmlhttp.onreadystatechange = function() {                if (xmlhttp.readyState == 4) {                    if (xmlhttp.responseText.indexOf('CHAMELEON_ERROR') != -1) {                        alert('There was an error loading from the server:\n' + xmlhttp.responseText.replace(/CHAMELEON_ERROR /, '') + '.');                        return;                    }                    CSS.__remoteCSS = CSS.toObject(xmlhttp.responseText);                    CSS.__localCSS = CSS.__clone(CSS.__remoteCSS);                    CSS.preview();                    if (doSetup) {                        setup();                    }                    xmlhttp = null;                }            };            xmlhttp.open('GET', Config.REMOTE_URI  + '&nc=' + new Date().getTime(), true);            xmlhttp.send(null);            return true;        },                        updateTemp: function(e, reset) {            if (!CSS.__localSaveRequired && !reset) {                UI.statusMsg('There are no changes that need saving!', 'chameleon-notice');                return;            }                        if (!reset) {                UI.statusMsg('Updating temporary styles on the server...', 'chameleon-working');            } else {                UI.statusMsg('Deleting temporary styles from the server...', 'chameleon-working');            }                        var css = CSS.toString();            var xmlhttp = new XMLHttpRequest();            xmlhttp.onreadystatechange = function() {                if (xmlhttp.readyState == 4) {                    if (xmlhttp.responseText.indexOf('CHAMELEON_ERROR') != -1) {                        UI.statusMsg('There was an error saving to the server:\n' + xmlhttp.responseText.replace(/CHAMELEON_ERROR /, '') + '.', 'chameleon-error');                                            } else {                        CSS.__localSaveRequired = false;                        if (!reset) {                            UI.statusMsg('Temporary styles have been updated.', 'chameleon-ok');                        } else {                            UI.statusMsg('Temporary styles have been cleared.', 'chameleon-ok');                        }                            }                    xmlhttp = null;                }            };            xmlhttp.open('POST', Config.REMOTE_URI + '&temp=1', true);            xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');            xmlhttp.send('css=' + css);        },                updateRemote: function() {            if (!CSS.__remoteSaveRequired) {                UI.statusMsg('There are no changes that need saving!', 'chameleon-notice');                return;            }                    var css = CSS.toString(CSS.__localCSS);            UI.statusMsg('Updating styles on the server...', 'chameleon-working');            var xmlhttp = new XMLHttpRequest();            xmlhttp.onreadystatechange = function() {                if (xmlhttp.readyState == 4) {                    if (xmlhttp.responseText.indexOf('CHAMELEON_ERROR') != -1) {                        UI.statusMsg('There was an error saving to the server:\n' + xmlhttp.responseText.replace(/CHAMELEON_ERROR /, '') + '.', 'chameleon-error');                    } else {                        CSS.__remoteCSS = CSS.toObject(css);                        CSS.__localSaveRequired = false;                        CSS.__remoteSaveRequired = false;                        UI.statusMsg('Styles have been saved to the server.', 'chameleon-ok');                    }                    xmlhttp = null;                }            };            xmlhttp.open('POST', Config.REMOTE_URI, true);            xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');            xmlhttp.send('css=' + css);        },                                                hardReset: function(e, noPrompt) {            if (noPrompt || confirm('Are you sure? This will erase all styles that have not been permanently saved to the server.')) {                CSS.__localCSS = {};                CSS.updateTemp(null, true);                                CSS.__localCSS = CSS.__clone(CSS.__remoteCSS);                CSS.__localSaveRequired = false;                CSS.__remoteSaveRequired = false;                CSS.preview();            }        },

⌨️ 快捷键说明

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