我一直在谷歌上寻找解决方案,但还没有任何有效的解决方案。我想检测textarea是否已被更改。我正在使用ckeditor,因此您无法检查textarea本身。我在文档中找到了一些内容,但我无法让它为我工作。
以前是否有人试图这样做并且有可能吗?
答案 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 );
});