CKeditor多个实例:除第一个实例外无法获取任何其他实例

时间:2017-12-17 18:00:25

标签: javascript jquery dom ckeditor wysiwyg

我的网页包含 两个 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控制台。

Here it is. Click!Click for larger

使用jQuery动态添加第二个textarea。我不认为它可能是一些异步问题,因为它在任何getData()调用之前获取两个实例。任何人吗?

P.S请注意,如果我稍后在浏览器的JavaScript控制台中编写CKEDITOR.instances['edit-message-content'].getData();,则会成功返回数据。

0 个答案:

没有答案