繁体   English   中英

用ckeditor检测变化

[英]detecting changes with ckeditor

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

有人曾经尝试过这样做吗,有可能吗?

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

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

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

我使用了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();
        });
    }

希望能有所帮助。

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

但是我不知道会触发一个“公共”事件,请查看; CKEDITOR.dom.event(DOM事件处理程序)CKEDITOR.event(内部事件处理程序)

(旧帖子,但谷歌把我带到这里)

官方网站上 ,您可以:

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 );
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM