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

📄 htmlarea_bak.php

📁 很棒的在线教学系统
💻 PHP
📖 第 1 页 / 共 5 页
字号:
/** Call this function to remove some buttons/drop-down boxes from the toolbar. * Pass as the only parameter a string containing button/drop-down names * delimited by spaces.  Note that the string should also begin with a space * and end with a space.  Example: * *   config.hideSomeButtons(" fontname fontsize textindicator "); * * It's useful because it's easier to remove stuff from the defaul toolbar than * create a brand new toolbar ;-) */HTMLArea.Config.prototype.hideSomeButtons = function(remove) {    var toolbar = this.toolbar;    for (var i in toolbar) {        var line = toolbar[i];        for (var j = line.length; --j >= 0; ) {            if (remove.indexOf(" " + line[j] + " ") >= 0) {                var len = 1;                if (/separator|space/.test(line[j + 1])) {                    len = 2;                }                line.splice(j, len);            }        }    }};/** Helper function: replace all TEXTAREA-s in the document with HTMLArea-s. */HTMLArea.replaceAll = function(config) {    var tas = document.getElementsByTagName("textarea");    for (var i = tas.length; i > 0; (new HTMLArea(tas[--i], config)).generate());};/** Helper function: replaces the TEXTAREA with the given ID with HTMLArea. */HTMLArea.replace = function(id, config) {    var ta = HTMLArea.getElementById("textarea", id);    return ta ? (new HTMLArea(ta, config)).generate() : null;};// Creates the toolbar and appends it to the _htmlareaHTMLArea.prototype._createToolbar = function () {    var editor = this;  // to access this in nested functions    var toolbar = document.createElement("div");    this._toolbar = toolbar;    toolbar.className = "toolbar";    toolbar.unselectable = "1";    var tb_row = null;    var tb_objects = new Object();    this._toolbarObjects = tb_objects;    // creates a new line in the toolbar    function newLine() {        var table = document.createElement("table");        table.border = "0px";        table.cellSpacing = "0px";        table.cellPadding = "0px";        toolbar.appendChild(table);        // TBODY is required for IE, otherwise you don't see anything        // in the TABLE.        var tb_body = document.createElement("tbody");        table.appendChild(tb_body);        tb_row = document.createElement("tr");        tb_body.appendChild(tb_row);    }; // END of function: newLine    // init first line    newLine();    // updates the state of a toolbar element.  This function is member of    // a toolbar element object (unnamed objects created by createButton or    // createSelect functions below).    function setButtonStatus(id, newval) {        var oldval = this[id];        var el = this.element;        if (oldval != newval) {            switch (id) {                case "enabled":                if (newval) {                    HTMLArea._removeClass(el, "buttonDisabled");                    el.disabled = false;                } else {                    HTMLArea._addClass(el, "buttonDisabled");                    el.disabled = true;                }                break;                case "active":                if (newval) {                    HTMLArea._addClass(el, "buttonPressed");                } else {                    HTMLArea._removeClass(el, "buttonPressed");                }                break;            }            this[id] = newval;        }    }; // END of function: setButtonStatus    // this function will handle creation of combo boxes.  Receives as    // parameter the name of a button as defined in the toolBar config.    // This function is called from createButton, above, if the given "txt"    // doesn't match a button.    function createSelect(txt) {        var options = null;        var el = null;        var cmd = null;        var customSelects = editor.config.customSelects;        var context = null;        switch (txt) {            case "fontsize":            case "fontname":            case "formatblock":            // the following line retrieves the correct            // configuration option because the variable name            // inside the Config object is named the same as the            // button/select in the toolbar.  For instance, if txt            // == "formatblock" we retrieve config.formatblock (or            // a different way to write it in JS is            // config["formatblock"].            options = editor.config[txt];            cmd = txt;            break;            default:            // try to fetch it from the list of registered selects            cmd = txt;            var dropdown = customSelects[cmd];            if (typeof dropdown != "undefined") {                options = dropdown.options;                context = dropdown.context;            } else {                alert("ERROR [createSelect]:\nCan't find the requested dropdown definition");            }            break;        }        if (options) {            el = document.createElement("select");            var obj = {                name    : txt, // field name                element : el,   // the UI element (SELECT)                enabled : true, // is it enabled?                text    : false, // enabled in text mode?                cmd : cmd, // command ID                state   : setButtonStatus, // for changing state                context : context            };            tb_objects[txt] = obj;            for (var i in options) {                var op = document.createElement("option");                op.appendChild(document.createTextNode(i));                op.value = options[i];                el.appendChild(op);            }            HTMLArea._addEvent(el, "change", function () {                editor._comboSelected(el, txt);            });        }        return el;    }; // END of function: createSelect    // appends a new button to toolbar    function createButton(txt) {        // the element that will be created        var el = null;        var btn = null;        switch (txt) {            case "separator":            el = document.createElement("div");            el.className = "separator";            break;            case "space":            el = document.createElement("div");            el.className = "space";            break;            case "linebreak":            newLine();            return false;            case "textindicator":            el = document.createElement("div");            el.appendChild(document.createTextNode("A"));            el.className = "indicator";            el.title = HTMLArea.I18N.tooltips.textindicator;            var obj = {                name    : txt, // the button name (i.e. 'bold')                element : el, // the UI element (DIV)                enabled : true, // is it enabled?                active  : false, // is it pressed?                text    : false, // enabled in text mode?                cmd : "textindicator", // the command ID                state   : setButtonStatus // for changing state            };            tb_objects[txt] = obj;            break;            default:            btn = editor.config.btnList[txt];        }        if (!el && btn) {            el = document.createElement("div");            el.title = btn[0];            el.className = "button";            // let's just pretend we have a button object, and            // assign all the needed information to it.            var obj = {                name    : txt, // the button name (i.e. 'bold')                element : el, // the UI element (DIV)                enabled : true, // is it enabled?                active  : false, // is it pressed?                text    : btn[2], // enabled in text mode?                cmd : btn[3], // the command ID                state   : setButtonStatus, // for changing state                context : btn[4] || null // enabled in a certain context?            };            tb_objects[txt] = obj;            // handlers to emulate nice flat toolbar buttons            HTMLArea._addEvent(el, "mouseover", function () {                if (obj.enabled) {                    HTMLArea._addClass(el, "buttonHover");                }            });            HTMLArea._addEvent(el, "mouseout", function () {                if (obj.enabled) with (HTMLArea) {                    _removeClass(el, "buttonHover");                    _removeClass(el, "buttonActive");                    (obj.active) && _addClass(el, "buttonPressed");                }            });            HTMLArea._addEvent(el, "mousedown", function (ev) {                if (obj.enabled) with (HTMLArea) {                    _addClass(el, "buttonActive");                    _removeClass(el, "buttonPressed");                    _stopEvent(is_ie ? window.event : ev);                }            });            // when clicked, do the following:            HTMLArea._addEvent(el, "click", function (ev) {                if (obj.enabled) with (HTMLArea) {                    _removeClass(el, "buttonActive");                    _removeClass(el, "buttonHover");                    obj.cmd(editor, obj.name, obj);                    _stopEvent(is_ie ? window.event : ev);                }            });            var img = document.createElement("img");            img.src = btn[1];            img.style.width = "18px";            img.style.height = "18px";            el.appendChild(img);        } else if (!el) {            el = createSelect(txt);        }        if (el) {            var tb_cell = document.createElement("td");            tb_row.appendChild(tb_cell);            tb_cell.appendChild(el);        } else {            alert("FIXME: Unknown toolbar item: " + txt);        }        return el;    };    var first = true;    for (var i in this.config.toolbar) {        if (!first) {            createButton("linebreak");        } else {            first = false;        }        var group = this.config.toolbar[i];        for (var j in group) {            var code = group[j];            if (/^([IT])\[(.*?)\]/.test(code)) {                // special case, create text label                var l7ed = RegExp.$1 == "I"; // localized?                var label = RegExp.$2;                if (l7ed) {                    label = HTMLArea.I18N.custom[label];                }                var tb_cell = document.createElement("td");                tb_row.appendChild(tb_cell);                tb_cell.className = "label";                tb_cell.innerHTML = label;            } else {                createButton(code);            }        }    }    this._htmlArea.appendChild(toolbar);};HTMLArea.prototype._createStatusBar = function() {    var statusbar = document.createElement("div");    statusbar.className = "statusBar";    this._htmlArea.appendChild(statusbar);    this._statusBar = statusbar;    // statusbar.appendChild(document.createTextNode(HTMLArea.I18N.msg["Path"] + ": "));    // creates a holder for the path view    div = document.createElement("span");    div.className = "statusBarTree";    div.innerHTML = HTMLArea.I18N.msg["Path"] + ": ";    this._statusBarTree = div;    this._statusBar.appendChild(div);    if (!this.config.statusBar) {        // disable it...        statusbar.style.display = "none";    }};// Creates the HTMLArea object and replaces the textarea with it.HTMLArea.prototype.generate = function () {    var editor = this;  // we'll need "this" in some nested functions    // get the textarea    var textarea = this._textArea;    if (typeof textarea == "string") {        // it's not element but ID        this._textArea = textarea = HTMLArea.getElementById("textarea", textarea);    }    this._ta_size = {        w: textarea.offsetWidth,        h: textarea.offsetHeight    };    textarea.style.display = "none";    // create the editor framework    var htmlarea = document.createElement("div");    htmlarea.className = "htmlarea";    this._htmlArea = htmlarea;    // insert the editor before the textarea.    textarea.parentNode.insertBefore(htmlarea, textarea);    if (textarea.form) {        // we have a form, on submit get the HTMLArea content and        // update original textarea.        var f = textarea.form;        if (typeof f.onsubmit == "function") {            var funcref = f.onsubmit;            if (typeof f.__msh_prevOnSubmit == "undefined") {                f.__msh_prevOnSubmit = [];            }            f.__msh_prevOnSubmit.push(funcref);        }

⌨️ 快捷键说明

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