我的网页包含 两个 CKeditor实例,其中包含完全 不同的ID和名称 属性。 CKeditor成功可视化并通过
获得第一个实例的值CKEDITOR.instances['add-message-content'].getData();
完全没问题。 然而,在另一个方面做同样的事情是一种全新的体验。
CKEDITOR.instances['edit-message-content'].getData();
抛出
未捕获的TypeError:无法读取未定义的属性“getData”
这是我背后的代码。
function editComment(commentId) {
if (document.getElementById('edit-comment-div') !== null) {
return;
}
var newTextEditor = $('<div class="form-group" id="edit-comment-div">' +
'<label class="control-label">Message:</label>' +
'<textarea id="edit-message-content" name="edit-message-content"></textarea>' +
'</div>');
var newTextArea = newTextEditor.find('textarea');
//attaches CK editor to the new textarea successfully
addCkEditor(newTextArea.attr('id'));
$(".comments-container").prepend(newTextEditor);
sendEditAjax(commentId);
}
function sendEditAjax(commentId) {
var dataToSend = {
'id': commentId,
'Message': CKEDITOR.instances['edit-message-content'].getData() //throws the error here
};
我非常困惑,因为console.dir(CKEDITOR.instances)
返回一个包含两个实例的对象,一切似乎都很好,直到下一行我试图得到第二个值。
我附上了我的页面照片和旁边的JavaScript控制台。
使用jQuery动态添加第二个textarea。我不认为它可能是一些异步问题,因为它在任何getData()调用之前获取两个实例。任何人吗?
P.S请注意,如果我稍后在浏览器的JavaScript控制台中编写CKEDITOR.instances['edit-message-content'].getData();
,则会成功返回数据。