TinyMCE 5 — иногда текстовое поле работает отлично, но иногда панель инструментов и ввод текста не отображаются

#javascript #html #tinymce

#javascript #HTML #крошечный кусочек #tinymce

Вопрос:

Я использую TinyMCE 5 в веб-приложении PHP / MySQL. Иногда текстовое поле отображается идеально, но иногда оно просто выглядит следующим образом. Обновление страницы обычно решает проблему и делает текстовое поле отображаемым нормально.

Отсутствие репутации не позволяет мне публиковать изображения, но ссылка здесь >>https://i.ibb.co/8xgF0fS/screenshot.jpg

и когда это работает должным образом >>https://i.ibb.co/nfBdZnF/Capture.jpg

По-видимому, нет рифмы или причины, по которой оно появляется или нет.

Я не использую Turbolinks, поэтому исключил эту причину. Попытался переместить скрипт в разные места на странице и удалить весь css из текстового поля.

Ссылка на TinyMCE js находится в начале страницы, непосредственно из cloud.tinymce.com

Теперь осталось с:

 <script type="text/javascript">
tinymce.init({
    selector: "#mytextarea",
    browser_spellcheck: true,
    contextmenu: false,
    plugins: [
        "autosave","autoresize",
        "advlist autolink lists link image charmap print preview anchor",
        "searchreplace visualblocks code fullscreen",
        "insertdatetime media table paste"
    ],
    autosave_interval: "10s",
    autoresize_bottom_margin: 25,
    max_height: 500,
    toolbar: "restoredraft | forecolor backcolor | insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
</script>
  
 <textarea name="body" id="mytextarea" required=""></textarea>
  

Комментарии:

1. Есть ли какая-либо ошибка в консоли devtools? Должно же что-то быть.

2. Ничего, и это то, что меня озадачивает. Я сижу с пользователем, который видит проблему, ошибок в консоли нет. Я загружаю ту же страницу, и она работает отлично, по-прежнему никаких ошибок в консоли. Я думаю, это должно быть как-то связано со временем загрузки, что tinymce.init в некоторых случаях пропускается, потому что загрузка страницы занимает больше времени. Может быть, если я размещу tinymce локально, а не использую ссылку CDN? Или мой тег скрипта находится не в том месте?

3. Взгляните сюда forums.meteor.com/t/tinymce-issues/23327

4. Спасибо, Сания, но это немного другое обстоятельство.

Ответ №1:

Если в консоли нет ошибки, то единственная причина, по которой может произойти что-то подобное, заключается в том, что ваш tinymce сценарий инициализации предшествует объявлению textarea . Все такие сценарии следует вызывать только тогда, когда DOM полностью готов. Убедитесь, что вы переместили скрипт до самого низа страницы, непосредственно перед закрытием </body> тега.

Комментарии:

1. Спасибо Джаярджо, я прихожу к тому же выводу, поэтому переработал порядок кода на странице. Пока все хорошо. Ценю вашу помощь.