javascript - CKEDITOR 不起作用并且出现错误 can not read property 'getEditor' at ckeditor.js:321
问题描述
这是我的 JavaScript 代码:
var data = data.Data;
var html = "";
for(var i = 0; i<data.length;i++){
html = html +'<div class="form-group">'+
'<label class="control-label col-lg-2">Hasil Rapat</label>'+
'<div class="col-lg-10">'+
'<textarea rows="20" id="rapat" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>'+
'</div>'+
'</div>'
}
我在 textarea 中包含了 id:
<textarea rows="20" id="rapat" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>
而且我也已经使用:
CKEDITOR.replace('rapat');
解决方案
我看到的第一个危险信号是 CKEditor 不知道如何使用您的逻辑。我不确定您使用的是哪个版本的 CKEditor,因为在 v5 中情况发生了巨大变化。但是,我认为你需要做的是:
var data = data.Data;
var html = "";
for(var i = 0; i<data.length;i++) {
var id = 'editorId_' + i;
html = html +'<div class="form-group">'+
'<label class="control-label col-lg-2">Hasil Rapat</label>'+
'<div class="col-lg-10">'+
'<textarea rows="20" id="'+ id + '" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>'+
'</div>'+
'</div>';
CKEDITOR.replace(id);
}
我不确定您CKEDITOR.replace
从哪里调用,但它应该在for
循环内或在完成将 html 添加到 DOM 的循环后的单独循环中。您的代码不起作用的原因是因为您最终得到了多个 id,并且 id 应该是唯一的。CKEDITOR 很可能会因此而绊倒。
编辑
上面的代码不起作用,因为 CKEDITOR 需要您的元素引用存在(并呈现)在 DOM 中。一旦该元素准备就绪,您就可以调用CKEDITOR.replace
. 与此类似的流程可能会起作用:
var data = data.Data;
var parentElement = ''; // <-- Get the reference to your container element here
for(var i = 0; i<data.length;i++) {
var id = 'editorId_' + i;
var html +'<div class="form-group">'+
'<label class="control-label col-lg-2">Hasil Rapat</label>'+
'<div class="col-lg-10">'+
'<textarea rows="20" id="'+ id + '" class="form-control rapat" name="hasil_rpt">'+data[i].hasil_rpt+'</textarea>'+
'</div>'+
'</div>';
parentElement.appendChild(html);
CKEDITOR.replace(id);
}
推荐阅读
- java - 乘法表,询问直到所有正确答案
- javascript - 使用箭头键将单击事件设置为容器中的下一个选项卡
- python-3.x - 获取 pathlib 对象的字符串表示
- ide - WebStorm 中的语法高亮
- go - 如何从 Visual Studio Code 中的包覆盖范围中排除生成的模拟
- javascript - 遍历 JavaScript 中每个列表项的数组
- css - CSS网格中的Flexbox:如何定位弹性项目
- c# - 如何在 WPF DataGrid 中获取 SelectedCells 的“锚”单元格?
- jquery - jQuery 追加/前置在 Edge 中不起作用?
- javascript - forEach 回调中第三个参数(数组)的用途是什么?