如何将 CKEditor 默认值设置为空白



我在我的 Rails 项目中使用 CKEditor

view如下所示:

<%= cktext_area_tag "editor_name","", :style=>"width:115px; height:19px; border:#d1d1d1 1px solid;  background:#cfcfcf" %>

加载编辑器时,编辑器中没有内容。但是在检查console时,我可以看到这个:

    > var editor_val = CKEDITOR.instances.editor_name.document.getBody().getChild(0).getText() ;
    < undefined
    > editor_val
    < "
      "
    > editor_val.length
    < 1

我希望 CKEditor 默认值为空。怎么可能?

CKEditor永远不会真正为空,如果你考虑的是DOM,而不是数据:

CKEDITOR.instances.editor.setData( '' );
CKEDITOR.instances.editor_name.editable().getText().length;
1
CKEDITOR.instances.editor_name.editable().getText().charCodeAt( 0 );
10
CKEDITOR.instances.editor_name.editable().getHtml();
"<p><br></p>" 
CKEDITOR.instances.editor_name.getData().length;
0

那个"持久"的白色字符(10)(不要与keyCode混淆)是一个新行,几乎不让人想起<br>这是为了在CKEditor中启用编辑,并且可能因浏览器/操作系统而异。它是 CKEditor 显示插入符号和初始折叠选择的内部起点,这意味着您不应依赖它。

由于获取 CKEditor 内容的唯一安全方法是:

CKEDITOR.instances.editor_name.getData();

如果您真的想遵循editable().getText()的方式,我建议您在服务器端或CKEDITOR.tools.trim()剥离标签。

最新更新