用ckeditor检测变化

时间:2011-03-08 09:53:48

标签: javascript html ckeditor

我一直在谷歌上寻找解决方案,但还没有任何有效的解决方案。我想检测textarea是否已被更改。我正在使用ckeditor,因此您无法检查textarea本身。我在文档中找到了一些内容,但我无法让它为我工作。

以前是否有人试图这样做并且有可能吗?

4 个答案:

答案 0 :(得分:4)

经过一些研究和大量的谷歌搜索,找到了合适的方法。

var content_editor = CKEDITOR.instances['content'];

content_editor.on( 'key', function() {
    change_page = true;
});

答案 1 :(得分:2)

我使用了jquery ckeditor方法。

这是html:

<textarea id="txtMessage" class="editor" maxlength="500"></textarea>

这是javascript:

try {
        var config =
            {
                height: 180,
                width: 515,
                linkShowAdvancedTab: false,
                scayt_autoStartup: true,
                enterMode: Number(2),
                toolbar_Full: [['Styles', 'Bold', 'Italic', 
                                              'Underline', 'SpellChecker', 'Scayt', 
                                              '-', 'NumberedList', 'BulletedList'],
                      ['Link', 'Unlink'], ['Undo', 'Redo', '-', 'SelectAll']]

            };

        $('textarea.editor').ckeditor(config);
        CKEDITOR.instances["txtMessage"].on("instanceReady", InstanceReadyEvent);

    }
    catch (err) {
        alert('Error loading ck editor: ' + err);
    }

    function InstanceReadyEvent() {
        this.document.on("keyup", function () {

            var yourText = CKEDITOR.instances["txtMessage"].getData();
        });
    }

希望有所帮助。

答案 2 :(得分:0)

你可以“轮询”一个checkDirty()函数。否则看一下SCAYT插件,我认为他们会监视击键。

但我不知道发生的“公开”事件,请查看;    CKEDITOR.dom.event(DOM事件处理程序)    CKEDITOR.event(内部事件处理程序)

答案 3 :(得分:0)

(旧帖子,但Google将我带到这里)

official website中,您有:

var editor = CKEDITOR.replace( 'editor1' );

// The "change" event is fired whenever a change is made in the editor.
editor.on( 'change', function( evt ) {
    // getData() returns CKEditor's HTML content.
    console.log( 'Total bytes: ' + evt.editor.getData().length );
});
相关问题