Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在手动之前将值设置为CKEditor_Javascript_Html_Symfony_Ckeditor_Twig - Fatal编程技术网

Javascript 在手动之前将值设置为CKEditor

Javascript 在手动之前将值设置为CKEditor,javascript,html,symfony,ckeditor,twig,Javascript,Html,Symfony,Ckeditor,Twig,我想在页面加载时在CKEditor中显示一些tet。 如果我使用下面的代码将默认数据设置为CKEditor,它可以正常工作 InnerLessonContent:<textarea name="editinnerlesson_content" id="editinnerlesson_innerlesson_content"></textarea> <script src="{{ asset('js/ckeditor/ckeditor.js') }}" type="

我想在页面加载时在CKEditor中显示一些tet。 如果我使用下面的代码将默认数据设置为CKEditor,它可以正常工作

InnerLessonContent:<textarea name="editinnerlesson_content" id="editinnerlesson_innerlesson_content"></textarea>

<script src="{{ asset('js/ckeditor/ckeditor.js') }}" type="text/javascript"></script>
    <script>
                    // Replace the <textarea id="editor1"> with a CKEditor
                    // instance, using default configuration.
                    CKEDITOR.replace( 'editinnerlesson_innerlesson_content' );
                    CKEDITOR.instances['editinnerlesson_innerlesson_content'].setData( '<p>This is the editor data.</p>' );
    </script>
    <br><br>
InnerLesson内容:
//用一个编辑器替换
//实例,使用默认配置。
CKEDITOR.replace('editinerLesson\u innerlesson\u content');
CKEDITOR.instances['editInnerLessource\u innerLessource\u content'].setData('这是编辑器数据。

');

但是当我使用下面的代码时,将不再显示CKEditor

<script>
                // Replace the <textarea id="editor1"> with a CKEditor
                // instance, using default configuration.
                CKEDITOR.replace( 'editinnerlesson_innerlesson_content' );
                CKEDITOR.instances['editinnerlesson_innerlesson_content'].setData( "{{ contents[0].content|raw }}" );
</script>

//用一个编辑器替换
//实例,使用默认配置。
CKEDITOR.replace('editinerLesson\u innerlesson\u content');
CKEDITOR.instances['editinnerlesson_innerlesson_content'].setData(“{{contents[0].content | raw}”);

代码中的错误是什么?如何更正它?

再次查看屏幕截图后,错误是显而易见的

数据中有换行符。在JavaScript中,这些是不允许的。例如,删除它们或用字符串“\n”替换它们

// this is allowed
var foo = "foo bar";

// this is allowed:
var foo = "foo\nbar";

// this is not allowed:
var foo = "foo
bar";
我原来的答覆如下:


三个想法:

1:您的数据或粘贴中有一些非打印中断字符。请参阅-注意,这些字符可能不在数据中!特别是如果您复制粘贴任何内容(我在不小心复制粘贴UTF BOM符号时遇到了这个问题)。要克服并测试这个问题,请在十六进制编辑器中查看代码和数据,并/或手动重写(从代码开始,这样更容易)。如果您进行复制粘贴,则可以在我放置管道的位置轻松粘贴:

   CKEDITOR.replace( 'editinnerlesson_innerlesson_content' );|
|  CKEDITOR.instances['editinnerlesson_innerlesson_content'].setData(| |"|...|...|"| |);|
2:就像注释中的Javad一样,我建议将数据直接转储到textarea,这可能会有所帮助,因为它不必是有效的JS字符串

3:我没有错,CKEDITOR.replace()是一个异步函数,编辑器还没有准备好。我想试试这样的东西:

<script>
    CKEDITOR.replace( 'editinnerlesson_innerlesson_content' );
    CKEDITOR.on('instanceReady', function(ev) {
        ev.editor.setData("<p>Confound these ponies!</p>"); // Replace with your data
    });
</script>

CKEDITOR.replace('editinerLesson\u innerlesson\u content');
CKEDITOR.on('instancerady',函数(ev){
ev.editor.setData(“混淆这些小马!

”;//替换为您的数据 });

如果这样做(未经测试的代码)有效,但不能像以前那样处理数据,则需要逐个字符检查数据的格式。无需屏幕抓图即可查看完整呈现的内容,但可以将其视为实际数据。

您可以直接将细枝变量转储到文本区域,而不是在
CKEDITOR.instances
命令中。所以试试类似的方法

<textarea name="editinnerlesson_content" id="editinnerlesson_innerlesson_content">
   {{ contents[0].content|raw }}
</textarea>

{{contents[0]。content | raw}

您是否尝试调用
.setData(“{{contents[0].content | raw}”)。可能你的引号阻止了你的javascript。您能给我们看一下渲染输出吗?@kekub CKEditor仍然没有显示。错误“Uncaught SyntaxError:意外标记非法”您能显示呈现的输出吗?@kekub显示的是文本区域而不是CKEDItorry,类似于
{contents[0]。content | raw}