Avis personnel : Principalement pour l'édition en arrière-plan, tout comme lorsque vous écrivez un article sur un compte public, il est également rédigé à partir de l'éditeur de texte enrichi.
(2.1) Summernote prend en charge le framework front-end bootstrap : http://www.bootcss.com/ Bootstrap est désormais très couramment utilisé. Le principal point fort est la mise en page réactive, et les téléphones mobiles (appareils mobiles) sont prioritaires. Il est très adapté à la navigation des grands utilisateurs de téléphones mobiles de nos jours. Summernote est donc également très adapté à l'édition de texte sur les téléphones mobiles.
(2.2) bootstrap possède également son propre éditeur de texte enrichi : bootstrap-wysiwyg, mais pourquoi ne pas l'utiliser ? La raison en est que Summernote peut insérer des vidéos. Mais de nombreux autres éditeurs de texte enrichi peuvent également insérer des vidéos ? Je parle de vidéos nationales. La plupart des autres éditeurs de texte enrichi étrangers ne peuvent insérer que des vidéos YouTube, mais Summernote est incroyable. Il peut insérer des vidéos Tencent et Youku, il est donc fortement recommandé aux éditeurs qui ont besoin d'insérer des vidéos lors de l'édition de texte. note d'été.
(2.3) Summernote est vraiment très simple, mais ses fonctions sont très complètes. Vous pouvez également personnaliser la barre d'outils, et les emoji ne font pas exception. Cependant, comme la plupart des articles sur l'insertion d'emoji dans summernote sont utilisés pour charger des emoji localement, vous pouvez le faire. reportez-vous à : https ://github.com/summernote/awesome-summernote et https://github.com/nilobarp/summernote-ext-emoji, Mais le chargement d'emoji localement entrerait en conflit avec la suppression d'images, donc je n'ai pas ajouté la fonction emoji. Une autre façon consiste à obtenir le lien vers le serveur api.github.emoji via ajax, puis à l'ajouter via le lien, mais c'est le cas. Jun ne sait vraiment pas comment l'utiliser.
(2.4) Summernote peut obtenir directement la valeur de la zone de texte via summernote('code'), qui est le code du corps du HTML, et peut être directement téléchargée dans la base de données ou soumise en arrière-plan.
(3.1) Parce que la fonction fournie avec Summernote convertira uniquement l'image au format base64 et la sauvegardera, il sera très laborieux de la sauvegarder dans la base de données. Une image aléatoire coûtera plusieurs Mo, ce qui est trop, j'ai donc réécrit. Il sera bien préférable de l'enregistrer sur le serveur puis de télécharger l'adresse de l'image sur le serveur dans la base de données.
(3.2) J'ai vu sur de nombreux autres blogs que les images téléchargées par Summernote sont réécrites et enregistrées sur le serveur, mais c'est dommage qu'ils collent simplement le code et l'oublient. De plus, elles sont essentiellement uniquement enregistrées et non supprimées. . Je pense que se passerait-il si ce serait dommage que l'image soit mal insérée mais ne puisse pas être supprimée, je prévois donc d'écrire une version Summernote qui vous permet de télécharger et de supprimer des images. En fait, l'idée est la même que celle de mon dernier article, faites juste attention à certains endroits : le $.ajax() de jQuery interagit avec l'arrière-plan php et utilise MutationObserver pour supprimer des images.
(3.3) Quiconque sait utiliser ajax ne devrait avoir aucun problème, donc la réécriture de onImageUpload utilise également ajax() de jQuery pour interagir avec l'arrière-plan. Comme ajax() prend également en charge le type File, le type FormData est utilisé pour l'interaction.
(3.4) Si vous pouvez le réécrire, ce n'est pas un problème. Je ne le réécrirai pas juste pour des raisons de commodité. J'ai écrit le backend en PHP, mais d'autres types de backends sont relativement simples à écrire, avec seulement environ 10 lignes de code.
(4.1) L'insertion d'une image relativement grande peut provoquer une erreur. La raison réside dans le fichier php.ini. La première raison est principalement que la taille de l'image dépasse la plage autorisée. Ce problème peut être résolu en modifiant max_execution_time ou post_max_size ou upload_max_filesize. de php.ini Cela peut être résolu, je n'en dirai pas plus et je me référerai aux expériences d'autres personnes : http://blog.csdn.net/anan890624/article/details/51859863.
(4.2) La deuxième raison réside également dans le fichier php.ini, mais il ne s'agit pas d'une limite de taille, mais le fichier de stockage temporaire du fichier est introuvable. Il peut ne pas être défini à l'origine dans le répertoire upload_tmp_dir de php.ini, donc. il doit être modifié. Voici ce que j'ai fait Modifications apportées sur cette base.
(4.3) Après avoir modifié php.ini, vous devez redémarrer le serveur, sinon des erreurs se produiront même si vous le modifiez.