繁体   English   中英

ckeditor - 不在textarea中设置html数据

[英]ckeditor - not setting html data inside textarea

我正在尝试使用带有cakephp的 ckeditor ,我写了一个帮手 问题是当我输入一些换行符或用CKeditor添加复选框(或其他html元素)时,编辑器会在下次编辑内容时崩溃。 Firefox返回以下错误:

SyntaxError:未终止的字符串文字

并突出显示}).setData("<p>test</p>来自以下部分:

<script type="text/javascript">CKEDITOR.replace('data[Template][body]',{
            toolbar: '',
            toolbarGroups: '',
            width: 950,
            height: 500
    }).setData("<p>test</p>

<p>&nbsp;</p>

<p>test</p>");</script>

这是蛋糕助手中的代码:

$code = "CKEDITOR.replace('{$id}',{
            {$options['toolbar']},
            {$options['toolbarGroups']},
            width: {$options['width']},
            height: {$options['height']}
}).setData('" . trim($value). "');";

return $this->Javascript->codeBlock($code);

任何帮助是极大的赞赏。

这是因为您在JavaScript字符串中有换行符。 您应该将换行符输出为“\\ n”,以便HTML输出如下:

<script type="text/javascript">CKEDITOR.replace('data[Template][body]',{
        toolbar: '',
        toolbarGroups: '',
        width: 950,
        height: 500
}).setData("<p>test</p>\n<p>&nbsp;</p>\n<p>test</p>");</script>

所以在你的助手里面:

$out .= "}).setData('" .  str_replace("\n", '\n', $value). "');";

我使用单引号,因此它将打印出\\ n而不是换行符;

或者您可以使用: str_replace("\\n", "\\\\n", $value)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM