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

📄 simpleeditor-debug.js

📁 这是YUI的源码及相关示例。里面有很多很炫的Javascript效果。
💻 JS
📖 第 1 页 / 共 5 页
字号:
                        }                    }                }            });            /**            * @attribute draggable            * @description Boolean indicating if the toolbar should be draggable.              * @default false            * @type Boolean            */            this.setAttributeConfig('draggable', {                value: (attr.draggable || false),                method: function(draggable) {                    if (draggable && !this.get('titlebar')) {                        YAHOO.log('Dragging enabled', 'info', 'Toolbar');                        if (!this._dragHandle) {                            this._dragHandle = document.createElement('SPAN');                            this._dragHandle.innerHTML = '|';                            this._dragHandle.setAttribute('title', 'Click to drag the toolbar');                            this._dragHandle.id = this.get('id') + '_draghandle';                            Dom.addClass(this._dragHandle, this.CLASS_DRAGHANDLE);                            if (this.get('cont').hasChildNodes()) {                                this.get('cont').insertBefore(this._dragHandle, this.get('cont').firstChild);                            } else {                                this.get('cont').appendChild(this._dragHandle);                            }                            /**                            * @property dd                            * @description The DragDrop instance associated with the Toolbar                            * @type Object                            */                            this.dd = new YAHOO.util.DD(this.get('id'));                            this.dd.setHandleElId(this._dragHandle.id);                                                    }                    } else {                        YAHOO.log('Dragging disabled', 'info', 'Toolbar');                        if (this._dragHandle) {                            this._dragHandle.parentNode.removeChild(this._dragHandle);                            this._dragHandle = null;                            this.dd = null;                        }                    }                    if (this._titlebar) {                        if (draggable) {                            this.dd = new YAHOO.util.DD(this.get('id'));                            this.dd.setHandleElId(this._titlebar);                            Dom.addClass(this._titlebar, 'draggable');                        } else {                            Dom.removeClass(this._titlebar, 'draggable');                            if (this.dd) {                                this.dd.unreg();                                this.dd = null;                            }                        }                    }                },                validator: function(value) {                    var ret = true;                    if (!YAHOO.util.DD) {                        ret = false;                    }                    return ret;                }            });        },        /**        * @method addButtonGroup        * @description Add a new button group to the toolbar. (uses addButton)        * @param {Object} oGroup Object literal reference to the Groups Config (contains an array of button configs as well as the group label)        */        addButtonGroup: function(oGroup) {            if (!this.get('element')) {                this._queue[this._queue.length] = ['addButtonGroup', arguments];                return false;            }                        if (!this.hasClass(this.CLASS_PREFIX + '-grouped')) {                this.addClass(this.CLASS_PREFIX + '-grouped');            }            var div = document.createElement('DIV');            Dom.addClass(div, this.CLASS_PREFIX + '-group');            Dom.addClass(div, this.CLASS_PREFIX + '-group-' + oGroup.group);            if (oGroup.label) {                var label = document.createElement('h3');                label.innerHTML = oGroup.label;                div.appendChild(label);            }            if (!this.get('grouplabels')) {                Dom.addClass(this.get('cont'), this.CLASS_PREFIX, '-nogrouplabels');            }            this.get('cont').appendChild(div);            //For accessibility, let's put all of the group buttons in an Unordered List            var ul = document.createElement('ul');            div.appendChild(ul);            if (!this._buttonGroupList) {                this._buttonGroupList = {};            }                        this._buttonGroupList[oGroup.group] = ul;            for (var i = 0; i < oGroup.buttons.length; i++) {                var li = document.createElement('li');                li.className = this.CLASS_PREFIX + '-groupitem';                ul.appendChild(li);                if ((oGroup.buttons[i].type !== undefined) && oGroup.buttons[i].type == 'separator') {                    this.addSeparator(li);                } else {                    oGroup.buttons[i].container = li;                    this.addButton(oGroup.buttons[i]);                }            }        },        /**        * @method addButtonToGroup        * @description Add a new button to a toolbar group. Buttons supported:        *   push, split, menu, select, color, spin        * @param {Object} oButton Object literal reference to the Button's Config        * @param {String} group The Group identifier passed into the initial config        * @param {HTMLElement} after Optional HTML element to insert this button after in the DOM.        */        addButtonToGroup: function(oButton, group, after) {            var groupCont = this._buttonGroupList[group];            var li = document.createElement('li');            li.className = this.CLASS_PREFIX + '-groupitem';            oButton.container = li;            this.addButton(oButton, after);            groupCont.appendChild(li);        },        /**        * @method addButton        * @description Add a new button to the toolbar. Buttons supported:        *   push, split, menu, select, color, spin        * @param {Object} oButton Object literal reference to the Button's Config        * @param {HTMLElement} after Optional HTML element to insert this button after in the DOM.        */        addButton: function(oButton, after) {            if (!this.get('element')) {                this._queue[this._queue.length] = ['addButton', arguments];                return false;            }            if (!this._buttonList) {                this._buttonList = [];            }            YAHOO.log('Adding button of type: ' + oButton.type, 'info', 'Toolbar');            if (!oButton.container) {                oButton.container = this.get('cont');            }            if ((oButton.type == 'menu') || (oButton.type == 'split') || (oButton.type == 'select')) {                if (Lang.isArray(oButton.menu)) {                    for (var i in oButton.menu) {                        if (Lang.hasOwnProperty(oButton.menu, i)) {                            var funcObject = {                                fn: function(ev, x, oMenu) {                                    if (!oButton.menucmd) {                                        oButton.menucmd = oButton.value;                                    }                                    oButton.value = ((oMenu.value) ? oMenu.value : oMenu._oText.nodeValue);                                },                                scope: this                            };                            oButton.menu[i].onclick = funcObject;                        }                    }                }            }            var _oButton = {}, skip = false;            for (var o in oButton) {                if (Lang.hasOwnProperty(oButton, o)) {                    if (!this._toolbarConfigs[o]) {                        _oButton[o] = oButton[o];                    }                }            }            if (oButton.type == 'select') {                _oButton.type = 'menu';            }            if (oButton.type == 'spin') {                _oButton.type = 'push';            }            if (_oButton.type == 'color') {                if (YAHOO.widget.Overlay) {                    _oButton = this._makeColorButton(_oButton);                } else {                    skip = true;                }            }            if (_oButton.menu) {                if ((YAHOO.widget.Overlay) && (oButton.menu instanceof YAHOO.widget.Overlay)) {                    oButton.menu.showEvent.subscribe(function() {                        this._button = _oButton;                    });                } else {                    for (var m = 0; m < _oButton.menu.length; m++) {                        if (!_oButton.menu[m].value) {                            _oButton.menu[m].value = _oButton.menu[m].text;                        }                    }                    if (this.browser.webkit) {                        _oButton.focusmenu = false;                    }                }            }            if (skip) {                oButton = false;            } else {                //Add to .get('buttons') manually                this._configs.buttons.value[this._configs.buttons.value.length] = oButton;                                var tmp = new this.buttonType(_oButton);                tmp.get('element').tabIndex = '-1';                tmp.get('element').setAttribute('role', 'button');                tmp._selected = true;                                if (this.get('disabled')) {                    //Toolbar is disabled, disable the new button too!                    tmp.set('disabled', true);                }                if (!oButton.id) {                    oButton.id = tmp.get('id');                }                YAHOO.log('Button created (' + oButton.type + ')', 'info', 'Toolbar');                                if (after) {                    var el = tmp.get('element');                    var nextSib = null;                    if (after.get) {                        nextSib = after.get('element').nextSibling;                    } else if (after.nextSibling) {                        nextSib = after.nextSibling;                    }                    if (nextSib) {                        nextSib.parentNode.insertBefore(el, nextSib);                    }                }                tmp.addClass(this.CLASS_PREFIX + '-' + tmp.get('value'));                var icon = document.createElement('span');                icon.className = this.CLASS_PREFIX + '-icon';                tmp.get('element').insertBefore(icon, tmp.get('firstChild'));                if (tmp._button.tagName.toLowerCase() == 'button') {                    tmp.get('element').setAttribute('unselectable', 'on');                    //Replace the Button HTML Element with an a href if it exists                    var a = document.createElement('a');                    a.innerHTML = tmp._button.innerHTML;                    a.href = '#';                    a.tabIndex = '-1';                    Event.on(a, 'click', function(ev) {                        Event.stopEvent(ev);                    });                    tmp._button.parentNode.replaceChild(a, tmp._button);                    tmp._button = a;                }                if (oButton.type == 'select') {                    if (tmp._button.tagName.toLowerCase() == 'select') {                        icon.parentNode.removeChild(icon);                        var iel = tmp._button;                        var parEl = tmp.get('element');                        parEl.parentNode.replaceChild(iel, parEl);                    } else {                        //Don't put a class on it if it's a real select element                        tmp.addClass(this.CLASS_PREFIX + '-select');                    }                }                if (oButton.type == 'spin') {                    if (!Lang.isArray(oButton.range)) {                        oButton.range = [ 10, 100 ];                    }                    this._makeSpinButton(tmp, oButton);                }                tmp.get('element').setAttribute('title', tmp.get('label'));                if (oButton.type != 'spin') {                    if ((YAHOO.widget.Overlay) && (_oButton.menu instanceof YAHOO.widget.Overlay)) {                        var showPicker = function(ev) {                            var exec = true;                            if (ev.keyCode && (ev.keyCode == 9)) {                                exec = false;                            }                            if (exec) {                                if (this._colorPicker) {                                    this._colorPicker._button = oButton.value;                                }                                var menuEL = tmp.getMenu().element;                                if (Dom.getStyle(menuEL, 'visibility') == 'hidden') {                                    tmp.getMenu().show();                                } else {                                    tmp.getMenu().hide();                                }                            }                            YAHOO.util.Event.stopEvent(ev);                        };                        tmp.on('mousedown', showPicker, oButton, this);                        tmp.on('keydown', showPicker, oButton, this);                                            } else if ((oButton.type != 'menu') && (oButton.type != 'select')) {                        tmp.on('keypress', this._buttonClick, oButton, this);                        tmp.on('mousedown', function(ev) {                            YAHOO.util.Event.stopEvent(ev);                            this._buttonClick(ev, oButton);                        }, oButton, this);                        tmp.on('click', function(ev) {                            YAHOO.util.Event.stopEvent(ev);                        });                    } else {                        //Stop the mousedown event so we can trap the selection in the editor!                        tmp.on('mousedown', function(ev) {                            YAHOO.util.Event.stopEvent(ev);                        });                        tmp.on('click', function(ev) {                            YAHOO.util.Event.stopEvent(ev);                        });                        tmp.on('change', function(ev) {                            if (!oButton.menucmd) {                                oButton.menucmd = oButton.value;

⌨️ 快捷键说明

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