CKEDITOR:从Javascript中的多个实例名称中获取数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CKEDITOR:从Javascript中的多个实例名称中获取数据相关的知识,希望对你有一定的参考价值。
因为我在html代码中有多个textareas,我通过javascript传递id值来检索每个textareas中的数据。但是,在JS函数中,“CKEDITOR.instances.id”并不代表预期,如CKEDITOR.instances.editor_1,CKEDITOR.instances.editor_2或CKEDITOR.instances.editor_4,因此,我没有任何检索数据。任何人都知道如何解决这个问题请让我。多谢了。
HTML代码:
<textarea name="edit_1"></textarea>
<input type="button" value="submit" onClick="getValue('edit_1')" />
<textarea name="edit_2"></textarea>
<input type="button" value="submit" onClick="getValue('edit_2')" />
<textarea name="edit_2"></textarea>
<input type="button" value="submit" onClick="getValue('edit_3')" />
JS代码:
var getValue = function(id) {
var content = CKEDITOR.instances.id.getData();
alert(content);
};
答案
尝试在id之间添加[]
var getValue = function(id) {
var content = CKEDITOR.instances[id].getData();
alert(content);
};
另一答案
我必须做这样的事情,因为我将事件绑定到具有多个实例的操作。并试图获取数据,但它总是会返回null为任何一个,但最后...使用事件(e.editor)工作。
var editors = CKEDITOR.instances;
for (var x in editors) {
if (editors[x]) {
var thisName = editors[x].name;
if (editors[thisName]) {
editors[thisName].on('focus', function (e) {
socket.emit('ckeditor_field_type_edit', user, e.editor.name);
});
editors[thisName].on('key', function (e) {
var data = e.editor.getData();
socket.emit('ckeditor_field_type_typing', user, e.editor.name, data);
});
editors[thisName].on('blur', function (e) {
var data = e.editor.getData();
setTimeout(function () {
socket.emit('ckeditor_field_type_edit_finish', user, e.editor.name, data);
}, 1000);
});
}
}
}
以上是关于CKEDITOR:从Javascript中的多个实例名称中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript学习系列博客_16_JavaScript中的函数的参数返回值
需要在CKEditor中的p标签中添加contentEditable = false