Как правильно скопировать / вставить внутренний HTML на javascript во входное поле textarea, управляемое CKEditor, включить в simple_form_for on Rails? - PullRequest
0 голосов
/ 13 июля 2020

Мне удалось реализовать CKEditor (https://github.com/galetahub/ckeditor/) во входном текстовом поле рельсов new / edit simple_form_for. Это работает хорошо. Но у меня есть код javascript, который копирует внутренний HTML куда-нибудь, чтобы вставить его в текстовое поле ввода, управляемое CKEditor, и это не работает. Я не нахожу в этом вводе правильный «идентификатор» или «класс» для использования с querySelector для вставки моего внутреннего HTML. Я уже пробовал использовать .content-input, #substep_content, .substep_content и .cke_editable, но это не работает. Кто-нибудь может мне помочь, пожалуйста?

Вот форма:

<%= simple_form_for(@substep) do |f| %>
    <%= f.input :content, label_html: { class: "content-label" }, input_html: { rows: 15, class: "content-input", ckeditor: { toolbar: 'Full' } }, as: :ckeditor %>
<% end %>

Когда я открываю «Исходный код страницы»:

<div class="form-group ckeditor optional substep_content">
 <label class="ckeditor optional content-label" for="substep_content">Contenu</label>
 <textarea rows="15" class="ckeditor optional content-input" name="substep[content]" id="substep_content"></textarea>
 <script>
 //<![CDATA[
 (function() {
            if (typeof CKEDITOR != 'undefined') {
              if (CKEDITOR.instances['substep_content']) { CKEDITOR.instances['substep_content'].destroy(); }
              CKEDITOR.replace('substep_content', {"toolbar":"Full","customConfig":"/assets/ckeditor/config-dff8e9963191c33e28d6d4ccec8784c5b317df36f5ae95a4f171ca46bd9f1df2.js"});
            }
          })();
 //]]>
 </script>
</div>

Здесь:

Изображение инспектора / изучение предмета

РЕДАКТИРОВАТЬ 2020/07/15: Я нашел решение в документации API (см. Код ниже) .

CKEDITOR.instances['substep_content'].setData( textContent );
...