[英]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> </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> </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.