我已将 CKEditor 集成到我的博客评论系统中,当我加载新页面时它显示正常。
但是,对于回复评论,我有一个 javascript 操作,可以从每个评论下方的“回复此评论”链接打开一个新的评论表单。在这种情况下,CKEditor 不会加载(我只是得到一个基本的非 CKEditor 文本区域)。我是否需要向我的 javascript 文件添加一些内容以便 CKeditor 正确加载?
posts/show.html.erb
<%= @post.content %>
<%= render 'comments/form' %> #this CKEditor form renders fine when the page loads
<%= @post.comments %>
评论/_form.html.erb
<%= simple_form_for(@comment, remote: true) do |f| %>
<%= f.hidden_field :parent_id %>
<%= f.cktext_area :content, :input_html => { :ckeditor => { :toolbar => 'Basic' } }, :class => "comment_input" %>
<%= f.button :submit %>
评论/new.js.erb
$('#comment_<%= @comment.parent.id %>').append("<%= escape_javascript(render 'form') %>");
评论/_comment.html.erb
<div id="comment_<%= comment.id %>">
<%= comment.content.try(:html_safe) %>
<%= link_to "reply to this comment", new_comment_path(:parent_id => comment), remote: true %>
</div>
请您参考如下方法:
您必须创建新的编辑器实例。在 comments/new.js.erb 中添加表单后:
CKEDITOR.replace('id_of_textarea',{
:toolbar => 'Basic'
});
我不确定是否可以使用任何选择器来代替“id_of_textarea”。如果不是,则 textarea 必须具有唯一 ID。 还有another way创建编辑器实例,但我自己还没有尝试过