Личное мнение: В основном для фонового редактирования, так же, как и когда вы пишете статью в публичном аккаунте, она тоже пишется на основе редактора форматированного текста.
(2.1) Summernote поддерживает интерфейсную среду начальной загрузки: http://www.bootcss.com/ сейчас очень широко используется. Основной особенностью является адаптивный макет, и мобильные телефоны (мобильные устройства) имеют приоритет. В настоящее время он очень подходит для просмотра огромным количеством пользователей мобильных телефонов. Таким образом, Summernote также очень подходит для редактирования текста на мобильных телефонах.
(2.2) bootstrap также имеет собственный редактор форматированного текста: bootstrap-wysiwyg, но почему бы не использовать его? Причина в том, что Summernote может вставлять видео. Но многие ли другие редакторы форматированного текста также могут вставлять видео? Я говорю о отечественных видео. Большинство других зарубежных редакторов форматированного текста могут вставлять только YouTube. Summernote может вставлять видео Tencent и видео Youku, поэтому он настоятельно рекомендуется редакторам, которым необходимо вставлять видео при редактировании текста.
(2.3) Summernote действительно очень прост, но его функции очень полны. Вы также можете настроить панель инструментов, и смайлы не являются исключением. Однако, поскольку большинство статей о вставке смайлов в Summernote используются для локальной загрузки смайлов, вы можете это сделать. см.: https://github.com/summernote/awesome-summernote и https://github.com/nilobarp/summernote-ext-emoji, Но загрузка эмодзи локально конфликтовала бы с удалением картинок, поэтому я не стал добавлять функцию эмодзи. Другой способ — получить ссылку на сервер api.github.emoji через ajax, а затем добавить ее через ссылку, но это Джун. действительно не знает, как этим пользоваться.
(2.4) Summernote может напрямую получить значение текстового поля через Summernote('code'), который является основным кодом HTML, и может быть напрямую загружен в базу данных или отправлен в фоновый режим.
(3.1) Поскольку функция, поставляемая с Summernote, будет только конвертировать изображение в формат Base64 и сохранять его, сохранить его в базе данных будет очень трудоемко. Случайное изображение будет стоить несколько МБ, что слишком много, поэтому я переписал. Гораздо лучше сохранить его на сервере, а затем загрузить адрес изображения на сервере в базу данных.
(3.2) Я видел на многих других блогах, что картинки, загруженные Summernote, перезаписываются и сохраняются на сервер, но жаль, что они просто вставляют код и забывают об этом, причем по сути они только сохраняются, а не удаляются. Думаю, а вдруг будет жаль неправильно вставить картинку, а удалить ее нельзя, поэтому планирую написать версию Summernote, позволяющую загружать и удалять картинки. По сути, идея та же, что и в моей прошлой статье, просто обратите внимание на некоторые места: $.ajax() в jQuery взаимодействует с фоном php и использует MutationObserver для удаления изображений.
(3.3) У любого, кто знает, как использовать ajax, не должно возникнуть проблем, поэтому переписанный метод onImageUpload также использует ajax() jQuery для взаимодействия с фоном. Поскольку ajax() также поддерживает тип File, для взаимодействия используется тип FormData.
(3.4) Если вы можете его переписать, это не проблема. Я не буду переписывать его только для удобства. Я написал бэкенд на PHP, но другие типы бэкендов писать относительно просто, всего около 10 строк кода.
(4.1) Вставка относительно большого изображения может вызвать ошибку. Причина кроется в файле php.ini. Первая причина в основном заключается в том, что размер изображения превышает допустимый диапазон. Эту проблему можно решить, изменив max_execution_time или post_max_size или upload_max_filesize. php.ini Это можно решить, я не буду говорить больше и сошлюсь на опыт других людей: http://blog.csdn.net/anan890624/article/details/51859863.
(4.2) Вторая причина также связана с файлом php.ini, но это не ограничение размера, но файл временного хранения файла не может быть найден. Возможно, он изначально не определен в каталоге upload_tmp_dir php.ini, поэтому. его нужно доработать. Вот что я сделал Модификации, сделанные на этой основе.
(4.3) После изменения php.ini необходимо перезагрузить сервер, иначе возникнут ошибки, даже если вы его измените.