防止删除ckeditor 4.3中的选定文本

Preventing selected text in ckeditor 4.3 from getting deleted

本文关键字:文本 删除 ckeditor      更新时间:2024-06-30

我想为CK Editor 4.3制作一个插件,防止任何用户删除所选文本。我已经将所选文本包含在span标记中,并将其contentEditable属性设置为false,并禁用所有键。如果所选文本位于不可编辑的span标记上,它适用于IE 8,但不适用于IE 10。代码如下所示

CKEDITOR.plugins.add('disableelement',
{
    init: function(editor)
    {
        editor.addCommand('insertDisableelement',
        {
            exec : function( editor )
            {    
                var mySelection = editor.getSelection();
                var selectedText = null;
                if (CKEDITOR.env.ie) 
                {
                    selectedText = mySelection.getNative().createRange().text + " ";
                } 
                else 
                {
                    selectedText = mySelection.getNative();
                }
                var e = new CKEDITOR.dom.element('span');
                e.setStyle('background-color', '#81F7F3');
                e.setAttributes({
                    contentEditable :'false'    
                });
                e.setText(selectedText);
                editor.insertElement(e);
                editor.insertHtml("");
            }
        }); // end of addCommand
        editor.ui.addButton('Disableelement',
        {
            label: 'Disable element',
            command: 'insertDisableelement',
            icon: this.path + 'images/disable1.png'
        });
        CKEDITOR.on('instanceReady', function(editorEvent) 
        {
            editorEvent.editor.on('key', function(keyEvent) 
            {
                var node = keyEvent.editor.getSelection().getStartElement();
                if (node.getAttribute('contentEditable') == 'false') 
                {
                    alert("key event=" + keyEvent);
                    keyEvent.cancel();
                }
            });
        }); // end of instanceReady
    } // end of init
}); // end of plugins.add

请帮我实现这一点。

为什么不把它放在一个小部件中,而不把它作为一个可编辑字段?