0

建立一个论坛并使用 Ckeditor 发布消息 - 在表单中使用 textarea 可以正常工作。现在我希望用户能够编辑他们的帖子,所以我有 ckeditor 内联工作,所以用户点击他们的帖子,他们的消息被 ckeditor 替换。到目前为止效果很好,看起来不错。但是保存按钮被禁用。我用一个表格包围了整个东西,但当然 ckeditor 现在是一个 div 而不是一个文本区域,所以我猜这个表格不起作用。那么如何将数据传递给我的 PHP 呢?

另一个问题是 Ckeditor 似乎不适用于手机。你能想到一个简单的手机后备方法吗?

这是我用来呈现内联编辑器的代码;

// Uncomment the following code to test the "Timeout Loading Method".
// CKEDITOR.loadFullCoreTimeout = 5;

window.onload = function() {
    // Listen to the double click event.
    if (window.addEventListener)
        document.body.addEventListener('click', onClick, false);
    else if (window.attachEvent)
        document.body.attachEvent('onclick', onClick);

};

function onClick(ev) {
    // Get the element which fired the event. This is not necessarily the
    // element to which the event has been attached.
    var element = ev.target || ev.srcElement;

    // Find out the div that holds this element.
    var name;

    do {
        element = element.parentNode;
    }
    while (element && (name = element.nodeName.toLowerCase()) &&
            (name != 'div' || element.className.indexOf('edit_post') == -1) && name != 'body');

    if (name == 'div' && element.className.indexOf('edit_post') != -1)
        replaceDiv(element);
}

var editor;

function replaceDiv(div) {
    if (editor)
        editor.destroy();

    editor = CKEDITOR.replace(div, {
        uiColor: '#FFFFFF',
        toolbar: [
            ['Save', 'Cut', 'Copy', 'Paste', 'PasteFromWord', '-', 'Undo', 'Redo', '-', 'Scayt'],
            '/',
            ['Bold', 'Italic', 'Underline', 'Blockquote', '-', 'Link', 'Unlink', '-', 'Image', 'Smiley', 'oembed']

        ]
    });

}
4

1 回答 1

1

您可以尝试覆盖默认的保存命令并使用您需要对保存进行的任何操作。

就像是

// Override the normal CKEditor save plugin
CKEDITOR.plugins.registered['save'] =
{
    init : function( editor )
    {
        editor.addCommand( 'save', 
            {
                modes : { wysiwyg:1, source:1 },
                exec : function( editor ) {
                    if(Editor.CheckDirty()) {
                        // Do wahtever you need to do during the save button here
                    } else {
                        alert("NothingToSave);
                    }
                }
            }
        );
        editor.ui.addButton( 'Save', {label : '@GeneralTerms.Save', command : 'save'} );
    }
}
于 2013-03-11T10:27:29.003 回答