ckeditor - 不在文本区域中设置 HTML 数据
ckeditor - not setting html data inside textarea
我正在尝试将ckeditor与cakephp一起使用,并且我编写了一个助手。问题是当我使用 CKeditor 输入一些换行符或添加复选框(或其他 html 元素)时,编辑器会在下次编辑内容时崩溃。Firefox 返回以下错误:
语法错误:未终止的字符串文本
并重点介绍以下部分中}).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 字符串中有换行符。您应该将换行符输出为 HTML 作为"'",以便您的 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). "');";
我使用了单引号,所以它会打印出'而不是换行符;
或者您可以使用:str_replace("'n", "''n", $value)
相关文章:
- 如何设置html元素填充的动画
- 使用val()在jquery循环中设置html字符串的val
- 在 PHP 块中使用 Javascript 设置 HTML 文本框的值(使用 echo)
- JS for循环来设置HTML对象参数
- 使用JavaScript在select字段中使用optgroup设置html选项值
- 使用jQuery在select选项上设置HTML数据属性
- 设置html时的验证
- 如何从javascript中设置html表单的属性
- 如何使用Angular 2设置HTML选择值
- 设置 HTML 自定义属性与在 ID 属性中存储信息
- 无法通过javascript函数的自动计算设置html元素值
- 通过单选按钮状态设置HTML元素的可见性
- 通过参数设置html组合框的选定选项
- 使用javascript设置html页面的标题
- 如何从javascript设置html单选值
- 通过单独的js文件设置HTML值
- 我们如何使用Jquery和ASP.NET MVC 4复杂模型数据设置HTML元素的值
- 如何使用来自@Html.TextBoxFor的用户输入设置@Html.RadioButtonFor的值
- ckEditor插件iframe对话框设置html输入
- 如何从json中设置HTML选择选项