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

How to set CKEditor default value to blank?

我在我的 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

那个"persistent"白字(10)(do not confuse with with keyCode) is a new line,很难让人想起[=13​​=],它是在CKEditor中启用编辑,可能会因browser/OS而有所不同。这是 CKEditor 显示插入符号和初始折叠选择的内部起点,这意味着您不应该依赖它。

因为 obtaining CKEditor content 唯一安全的方法是:

CKEDITOR.instances.editor_name.getData();

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