2015-04-14 70 views
0

我使用的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的默認值是空白。這怎麼可能?

+1

第一個* undefined *是corrent,返回值分配給變量,而不是寫入輸出(ruby做到了,但是chrome控制檯沒有!)。對於下一部分,我們需要查看你的代碼如何初始化編輯器和textareas ..而且你可以使用修剪功能http://www.youtube.com/jsref/jsref_trim_string.asp editor_val.trim()。 –

回答

1

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)(do not confuse with with keyCode)是new line,幾乎沒有一個的<br>回憶是在CKEditor中啓用編輯功能,並可能因瀏覽器/操作系統而異。這是CKEditor顯示插入符號和初始摺疊選擇的內部起點,這意味着您不應該依賴它。

由於obtaining CKEditor content唯一安全的方法是:

CKEDITOR.instances.editor_name.getData(); 

我建議剝離在服務器端或標籤CKEDITOR.tools.trim(),如果你真的想跟着editable().getText()方式。

相關問題