我已将 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创建编辑器实例,但我自己还没有尝试过


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!