【发布时间】:2019-09-15 20:17:57
【问题描述】:
我有一个用于在 Rails 5 中发帖的表单。我正在使用 CKEditor 文本编辑器,它工作正常。但是,每次单击浏览器的前进或后退按钮都会加载一个新的文本编辑器。供参考:我正在使用“galetahub”中的 CKEditor gem。 我的问题类似于这个问题: CKEditor loads several times in Ruby on Rails 5
我认为这是 turbolinks 的问题,但我不知道还能尝试什么。除了完全禁用 turbolinks,我尝试过:
- 在 div 和表单字段中插入“data-no-turbolink”和“data: { turbolinks: false }”。
-
我已经尝试了从 gem 到 "init_ckeditor" js 文件的标准实现:
ready = -> $('.ckeditor').each -> CKEDITOR.replace $(this).attr('id') $(document).ready(ready) $(document).on('page:load', ready) -
以及以下变化:
document.addEventListener('turbolinks:before-cache', function() { CKEDITOR.replace('text_form') }); and $(document).on("turbolinks:load", function() { CKEDITOR.replace('text_form') }); (Both separately and together.)
这是宝石:
gem 'ckeditor', github: 'galetahub/ckeditor'
这是表单和字段:
<%= form_with model: @article, local: true, html:{multipart: true} do |form| %>
<div class="text-form">
<%= form.cktext_area :text, class: 'ckeditor', id: 'text_form' %>
</div>
<% end %>
这里是js:
CKEDITOR.replace('text_form')
任何帮助将不胜感激。一直在寻找这个问题的答案。通常,我可以自己解决问题,但这让我绞尽脑汁。
【问题讨论】:
标签: javascript ruby-on-rails ckeditor ruby-on-rails-5 turbolinks