[英]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.