我在laravel中试用CKeditor,遇到了将html插入编辑器的问题。追加编辑器后,我想设置值,以便您可以编辑已经存在的值。
HTML:
@if (!empty($proposal->reference_sites))
<div class="form-group row mb-4">
<label for="reference_sites" class="col-sm-3 col-form-label form-control-lg">Reference sites:</label>
<div class="col-sm-10" id="reference_sites"></div>
</div>
@endif
JS:
if($('#reference_sites').length){
$output = "<textarea id='ckeditor-rs' name='ckeditor-rs' rows='10' cols='80'></textarea>";
$('#reference_sites').append($output);
CKEDITOR.replace('ckeditor-rs');
var editor = CKEDITOR.instances['ckeditor-rs'];
editor.setData("{!!html_entity_decode($proposal->reference_sites)!!}");
}else{
console.log("couldn't append ckeditor in rs");
}
如您所见,我正在尝试解码HTML并将其设置为CKeditor的HTML。
$proposal->reference_sites
包含以下HTML:
<ul>
<li>site one</li>
<li>site two</li>
<li>site 3</li>
</ul>
错误:Uncaught SyntaxError: Invalid or unexpected token <
我不确定是什么原因导致此错误,因为当我仅解码包含<p>some text</p>
的变量时,会将some text
插入编辑器。
非常感谢您的帮助!
答案 0 :(得分:1)
尝试以下一项,
MethodChannel
答案 1 :(得分:0)
您可以尝试以下代码:
if($('#reference_sites').length){
$output = "<textarea id='ckeditor-rs' name='ckeditor-rs' rows='10' cols='80'></textarea>";
$('#reference_sites').append($output);
CKEDITOR.replace('ckeditor-rs');
for (var i in CKEDITOR.instances) {
CKEDITOR.instances[i].on('change', function() {
CKEDITOR.instances[i].updateElement()
});
}
}else{
console.log("couldn't append ckeditor in rs");
}