在ckeditor中插入html会导致语法错误(laravel)

时间:2019-04-02 10:57:33

标签: javascript html laravel ckeditor laravel-blade

我在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插入编辑器。

非常感谢您的帮助!

2 个答案:

答案 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");
}